New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PHP 7.3 compatibility #5

Open
wants to merge 2 commits into
base: master
from

Conversation

4 participants
@Jan-E
Contributor

Jan-E commented Jul 10, 2018

@remicollet This was the PR I had been testing.

Ref: https://externals.io/message/102685

@remicollet

This comment has been minimized.

Show comment
Hide comment
@remicollet

remicollet Jul 10, 2018

Contributor

Test suite OK with 7.2

With 7.3 we have a segfault

(gdb) bt
#0  zend_mm_alloc_small (bin_num=4, size=40, heap=0x7ffff3600040) at /usr/src/debug/php73-php-7.3.0~alpha3-1.fc27.remi.x86_64/Zend/zend_alloc.c:1285
#1  _emalloc_40 () at /usr/src/debug/php73-php-7.3.0~alpha3-1.fc27.remi.x86_64/Zend/zend_alloc.c:2419
#2  0x00007fffec38bebb in zend_string_alloc (persistent=0, len=10) at /opt/remi/php73/root/usr/include/php/Zend/zend_string.h:133
#3  zend_string_init (persistent=0, len=10, str=0x7fffec3908d5 "content-id") at /opt/remi/php73/root/usr/include/php/Zend/zend_string.h:155
#4  mailparse_get_part_data (part=0x7ffff3668680, return_value=return_value@entry=0x7ffff361e850) at /home/php/git/mailparse/mailparse.c:1479
#5  0x00007fffec38c513 in zif_mailparse_msg_get_part_data (execute_data=<optimized out>, return_value=0x7ffff361e850) at /home/php/git/mailparse/mailparse.c:1513
#6  0x0000555555874e7a in ZEND_DO_ICALL_SPEC_RETVAL_USED_HANDLER () at /usr/src/debug/php73-php-7.3.0~alpha3-1.fc27.remi.x86_64/Zend/zend_vm_execute.h:690
#7  execute_ex (ex=0x7ffff3600040) at /usr/src/debug/php73-php-7.3.0~alpha3-1.fc27.remi.x86_64/Zend/zend_vm_execute.h:54541
#8  0x000055555587a023 in zend_execute (op_array=op_array@entry=0x7ffff36862a0, return_value=0x0, return_value@entry=0x7ffff36a0940)
    at /usr/src/debug/php73-php-7.3.0~alpha3-1.fc27.remi.x86_64/Zend/zend_vm_execute.h:59965
#9  0x00005555557e9b12 in zend_execute_scripts (type=type@entry=8, retval=0x7ffff36a0940, retval@entry=0x0, file_count=-211689424, file_count@entry=3)
    at /usr/src/debug/php73-php-7.3.0~alpha3-1.fc27.remi.x86_64/Zend/zend.c:1564
#10 0x0000555555789a50 in php_execute_script (primary_file=0x7fffffffc440) at /usr/src/debug/php73-php-7.3.0~alpha3-1.fc27.remi.x86_64/main/main.c:2608
#11 0x000055555587c47c in do_cli (argc=64, argv=0x555555bf8440) at /usr/src/debug/php73-php-7.3.0~alpha3-1.fc27.remi.x86_64/sapi/cli/php_cli.c:1002
#12 0x000055555564118b in main (argc=64, argv=0x555555bf8440) at /usr/src/debug/php73-php-7.3.0~alpha3-1.fc27.remi.x86_64/sapi/cli/php_cli.c:1395

Contributor

remicollet commented Jul 10, 2018

Test suite OK with 7.2

With 7.3 we have a segfault

(gdb) bt
#0  zend_mm_alloc_small (bin_num=4, size=40, heap=0x7ffff3600040) at /usr/src/debug/php73-php-7.3.0~alpha3-1.fc27.remi.x86_64/Zend/zend_alloc.c:1285
#1  _emalloc_40 () at /usr/src/debug/php73-php-7.3.0~alpha3-1.fc27.remi.x86_64/Zend/zend_alloc.c:2419
#2  0x00007fffec38bebb in zend_string_alloc (persistent=0, len=10) at /opt/remi/php73/root/usr/include/php/Zend/zend_string.h:133
#3  zend_string_init (persistent=0, len=10, str=0x7fffec3908d5 "content-id") at /opt/remi/php73/root/usr/include/php/Zend/zend_string.h:155
#4  mailparse_get_part_data (part=0x7ffff3668680, return_value=return_value@entry=0x7ffff361e850) at /home/php/git/mailparse/mailparse.c:1479
#5  0x00007fffec38c513 in zif_mailparse_msg_get_part_data (execute_data=<optimized out>, return_value=0x7ffff361e850) at /home/php/git/mailparse/mailparse.c:1513
#6  0x0000555555874e7a in ZEND_DO_ICALL_SPEC_RETVAL_USED_HANDLER () at /usr/src/debug/php73-php-7.3.0~alpha3-1.fc27.remi.x86_64/Zend/zend_vm_execute.h:690
#7  execute_ex (ex=0x7ffff3600040) at /usr/src/debug/php73-php-7.3.0~alpha3-1.fc27.remi.x86_64/Zend/zend_vm_execute.h:54541
#8  0x000055555587a023 in zend_execute (op_array=op_array@entry=0x7ffff36862a0, return_value=0x0, return_value@entry=0x7ffff36a0940)
    at /usr/src/debug/php73-php-7.3.0~alpha3-1.fc27.remi.x86_64/Zend/zend_vm_execute.h:59965
#9  0x00005555557e9b12 in zend_execute_scripts (type=type@entry=8, retval=0x7ffff36a0940, retval@entry=0x0, file_count=-211689424, file_count@entry=3)
    at /usr/src/debug/php73-php-7.3.0~alpha3-1.fc27.remi.x86_64/Zend/zend.c:1564
#10 0x0000555555789a50 in php_execute_script (primary_file=0x7fffffffc440) at /usr/src/debug/php73-php-7.3.0~alpha3-1.fc27.remi.x86_64/main/main.c:2608
#11 0x000055555587c47c in do_cli (argc=64, argv=0x555555bf8440) at /usr/src/debug/php73-php-7.3.0~alpha3-1.fc27.remi.x86_64/sapi/cli/php_cli.c:1002
#12 0x000055555564118b in main (argc=64, argv=0x555555bf8440) at /usr/src/debug/php73-php-7.3.0~alpha3-1.fc27.remi.x86_64/sapi/cli/php_cli.c:1395

@cmb69

This comment has been minimized.

Show comment
Hide comment
@cmb69

cmb69 Jul 10, 2018

On a quick glance, this doesn't look like a mailparse issue. After all, what could be wrong with this zend_string_init? Stack frame #3 also looks okay.

BTW: why do you attempt to achieve PHP 7.3 compatibility, for a PHP 4 extension? ;)

cmb69 commented Jul 10, 2018

On a quick glance, this doesn't look like a mailparse issue. After all, what could be wrong with this zend_string_init? Stack frame #3 also looks okay.

BTW: why do you attempt to achieve PHP 7.3 compatibility, for a PHP 4 extension? ;)

@@ -978,12 +978,21 @@ PHP_FUNCTION(mailparse_stream_encode)
buf = emalloc(bufsize);
RETVAL_TRUE;
#if PHP_VERSION_ID >= 70300
conv = mbfl_convert_filter_new(mbfl_no2encoding(mbfl_no_encoding_8bit),

This comment has been minimized.

@cmb69

cmb69 Jul 10, 2018

According to @nikic this line should be:

	conv = mbfl_convert_filter_new(&mbfl_no_encoding_8bit,
@cmb69

cmb69 Jul 10, 2018

According to @nikic this line should be:

	conv = mbfl_convert_filter_new(&mbfl_no_encoding_8bit,

This comment has been minimized.

@remicollet

remicollet Jul 11, 2018

Contributor

You mean &mbfl_encoding_8bit ?
The problem is that is NOT a public symbol in the bundled library, so is not usable (modules/mailparse.so: undefined symbol: mbfl_encoding_8bit)

@remicollet

remicollet Jul 11, 2018

Contributor

You mean &mbfl_encoding_8bit ?
The problem is that is NOT a public symbol in the bundled library, so is not usable (modules/mailparse.so: undefined symbol: mbfl_encoding_8bit)

This comment has been minimized.

@nikic

nikic Jul 11, 2018

Member

I think the symbol is public, you just need an explicit include on libmbfl/mbfl/mbfilter_8bit.h.

But of course, your version works too, if performance is not an issue.

@nikic

nikic Jul 11, 2018

Member

I think the symbol is public, you just need an explicit include on libmbfl/mbfl/mbfilter_8bit.h.

But of course, your version works too, if performance is not an issue.

This comment has been minimized.

@Jan-E

Jan-E Jul 11, 2018

Contributor

Including ext/mbstring/libmbfl/mbfl/mbfilter_8bit.h fails with a
ext\mailparse\php_mailparse_mime.c(912): error C2101: '&' on constant

@Jan-E

Jan-E Jul 11, 2018

Contributor

Including ext/mbstring/libmbfl/mbfl/mbfilter_8bit.h fails with a
ext\mailparse\php_mailparse_mime.c(912): error C2101: '&' on constant

This comment has been minimized.

@nikic

nikic Jul 11, 2018

Member

@Jan-E Are you using &mbfl_no_encoding_8bit or &mbfl_encoding_8bit when you get that error?

@nikic

nikic Jul 11, 2018

Member

@Jan-E Are you using &mbfl_no_encoding_8bit or &mbfl_encoding_8bit when you get that error?

This comment has been minimized.

@Jan-E

Jan-E Jul 11, 2018

Contributor

&mbfl_encoding_8bit

@Jan-E

Jan-E Jul 11, 2018

Contributor

&mbfl_encoding_8bit

@Jan-E

This comment has been minimized.

Show comment
Hide comment
@Jan-E

Jan-E Jul 10, 2018

Contributor

On a quick glance, this doesn't look like a mailparse issue. After all, what could be wrong with this zend_string_init? Stack frame #3 also looks okay.

I moved the zend-string_init to the top of the block. Now the segfaults starts at https://github.com/Jan-E/pecl-mail-mailparse/blob/c90c5fe18aa8b1a76a5269d36661eeede22c247e/mailparse.c#L1476 (!), near the same line as before (1479).

		if (part->boundary)
	6AB736A2  push        0Ch  
	6AB736A4  push        offset string "content-base" (6AB78ACCh)  
	6AB736A9  push        esi  
	6AB736AA  call        dword ptr [__imp__add_assoc_string_ex (6AB7816Ch)]  
>	6AB736B0  mov         eax,dword ptr [ebx+78h]  
	6AB736B3  add         esp,10h  
	6AB736B6  test        eax,eax  
	6AB736B8  je          mailparse_get_part_data+22Ch (6AB736CCh)  
			add_assoc_string(return_value, "content-boundary", part->boundary);

Backtrace:

 	[Inline Frame] php7.dll!zend_mm_alloc_small(_zend_mm_heap *) Line 1285	C
 	[Inline Frame] php7.dll!zend_mm_alloc_heap(_zend_mm_heap * heap, unsigned int) Line 1356	C
 	php7.dll!emalloc(unsigned int size) Line 2496	C
 	[Inline Frame] php7.dll!zend_string_alloc(unsigned int) Line 133	C
 	[Inline Frame] php7.dll!zend_string_init(const char * persistent, unsigned int) Line 155	C
 	[Inline Frame] php7.dll!_zend_hash_str_add_or_update_i(_zend_array *) Line 774	C
 	php7.dll!zend_hash_str_update(_zend_array * ht, const char * str, unsigned int len, _zval_struct * pData) Line 837	C
 	[Inline Frame] php7.dll!zend_symtable_str_update(_zend_array * ht, const char *) Line 531	C
 	php7.dll!add_assoc_string_ex(_zval_struct * arg, const char * key, unsigned int key_len, const char * str) Line 1419	C
>	php_mailparse.dll!mailparse_get_part_data(_php_mimepart * part, _zval_struct * return_value) Line 1476	C
 	php_mailparse.dll!zif_mailparse_msg_get_part_data(_zend_execute_data * execute_data, _zval_struct * return_value) Line 1512	C
 	php7.dll!ZEND_DO_ICALL_SPEC_RETVAL_USED_HANDLER(_zend_execute_data * execute_data) Line 701	C
 	php7.dll!execute_ex(_zend_execute_data * ex) Line 54410	C
 	php7.dll!zend_execute(_zend_op_array * op_array, _zval_struct * return_value) Line 59965	C
 	php7.dll!zend_execute_scripts(int type, _zval_struct * retval, int file_count, ...) Line 1564	C
 	php7.dll!php_execute_script(_zend_file_handle * primary_file) Line 2608	C
 	php.exe!do_cli(int argc, char * * argv) Line 1003	C
 	php.exe!main(int argc, char * * argv) Line 1397	C
Contributor

Jan-E commented Jul 10, 2018

On a quick glance, this doesn't look like a mailparse issue. After all, what could be wrong with this zend_string_init? Stack frame #3 also looks okay.

I moved the zend-string_init to the top of the block. Now the segfaults starts at https://github.com/Jan-E/pecl-mail-mailparse/blob/c90c5fe18aa8b1a76a5269d36661eeede22c247e/mailparse.c#L1476 (!), near the same line as before (1479).

		if (part->boundary)
	6AB736A2  push        0Ch  
	6AB736A4  push        offset string "content-base" (6AB78ACCh)  
	6AB736A9  push        esi  
	6AB736AA  call        dword ptr [__imp__add_assoc_string_ex (6AB7816Ch)]  
>	6AB736B0  mov         eax,dword ptr [ebx+78h]  
	6AB736B3  add         esp,10h  
	6AB736B6  test        eax,eax  
	6AB736B8  je          mailparse_get_part_data+22Ch (6AB736CCh)  
			add_assoc_string(return_value, "content-boundary", part->boundary);

Backtrace:

 	[Inline Frame] php7.dll!zend_mm_alloc_small(_zend_mm_heap *) Line 1285	C
 	[Inline Frame] php7.dll!zend_mm_alloc_heap(_zend_mm_heap * heap, unsigned int) Line 1356	C
 	php7.dll!emalloc(unsigned int size) Line 2496	C
 	[Inline Frame] php7.dll!zend_string_alloc(unsigned int) Line 133	C
 	[Inline Frame] php7.dll!zend_string_init(const char * persistent, unsigned int) Line 155	C
 	[Inline Frame] php7.dll!_zend_hash_str_add_or_update_i(_zend_array *) Line 774	C
 	php7.dll!zend_hash_str_update(_zend_array * ht, const char * str, unsigned int len, _zval_struct * pData) Line 837	C
 	[Inline Frame] php7.dll!zend_symtable_str_update(_zend_array * ht, const char *) Line 531	C
 	php7.dll!add_assoc_string_ex(_zval_struct * arg, const char * key, unsigned int key_len, const char * str) Line 1419	C
>	php_mailparse.dll!mailparse_get_part_data(_php_mimepart * part, _zval_struct * return_value) Line 1476	C
 	php_mailparse.dll!zif_mailparse_msg_get_part_data(_zend_execute_data * execute_data, _zval_struct * return_value) Line 1512	C
 	php7.dll!ZEND_DO_ICALL_SPEC_RETVAL_USED_HANDLER(_zend_execute_data * execute_data) Line 701	C
 	php7.dll!execute_ex(_zend_execute_data * ex) Line 54410	C
 	php7.dll!zend_execute(_zend_op_array * op_array, _zval_struct * return_value) Line 59965	C
 	php7.dll!zend_execute_scripts(int type, _zval_struct * retval, int file_count, ...) Line 1564	C
 	php7.dll!php_execute_script(_zend_file_handle * primary_file) Line 2608	C
 	php.exe!do_cli(int argc, char * * argv) Line 1003	C
 	php.exe!main(int argc, char * * argv) Line 1397	C
@remicollet

This comment has been minimized.

Show comment
Hide comment
@remicollet

remicollet Jul 11, 2018

Contributor

On a quick glance, this doesn't look like a mailparse issue. After all, what could be wrong with this zend_string_init?

@cmb69 this can be a memory corruption, raise by something wrong in some previous part (double-free, ...)

FYI the extension also have issues with 7.2 (https://bugs.php.net/bug.php?id=76561) and newer GCC

Contributor

remicollet commented Jul 11, 2018

On a quick glance, this doesn't look like a mailparse issue. After all, what could be wrong with this zend_string_init?

@cmb69 this can be a memory corruption, raise by something wrong in some previous part (double-free, ...)

FYI the extension also have issues with 7.2 (https://bugs.php.net/bug.php?id=76561) and newer GCC

@remicollet

This comment has been minimized.

Show comment
Hide comment
@remicollet

remicollet Jul 11, 2018

Contributor

I have merged this PR, keep this open for discussion around the segfault

Contributor

remicollet commented Jul 11, 2018

I have merged this PR, keep this open for discussion around the segfault

@remicollet

This comment has been minimized.

Show comment
Hide comment
@remicollet

remicollet Jul 11, 2018

Contributor

Valgrind reports something interesting:

==26680== Invalid read of size 4
==26680==    at 0x3AD632: gc_check_possible_root (zend_gc.h:72)
==26680==    by 0x3AD632: i_zval_ptr_dtor (zend_variables.h:51)
==26680==    by 0x3AD632: zend_array_destroy (zend_hash.c:1472)
==26680==    by 0x3DCF47: zend_assign_to_variable (zend_execute.h:110)
==26680==    by 0x3DCF47: ZEND_ASSIGN_SPEC_CV_VAR_RETVAL_UNUSED_HANDLER (zend_vm_execute.h:45071)
==26680==    by 0x4258EC: execute_ex (zend_vm_execute.h:59325)
==26680==    by 0x42E022: zend_execute (zend_vm_execute.h:59965)
==26680==    by 0x39DB11: zend_execute_scripts (zend.c:1564)
==26680==    by 0x33DA4F: php_execute_script (main.c:2608)
==26680==    by 0x43047B: do_cli (php_cli.c:1002)
==26680==    by 0x1F518A: main (php_cli.c:1395)
==26680==  Address 0x10a90d64 is 4 bytes inside a block of size 40 free'd
==26680==    at 0x4C2DD18: free (vg_replace_malloc.c:530)
==26680==    by 0x3AD7C4: i_zval_ptr_dtor (zend_variables.h:49)
==26680==    by 0x3AD7C4: zend_array_destroy (zend_hash.c:1472)
==26680==    by 0x10719F79: php_mimepart_free (php_mailparse_mime.c:356)
==26680==    by 0x3AD544: zend_hash_destroy (zend_hash.c:1398)
==26680==    by 0x10719E62: php_mimepart_free (php_mailparse_mime.c:333)
==26680==    by 0x3AD544: zend_hash_destroy (zend_hash.c:1398)
==26680==    by 0x10719E62: php_mimepart_free (php_mailparse_mime.c:333)
==26680==    by 0x3AD544: zend_hash_destroy (zend_hash.c:1398)
==26680==    by 0x10719E62: php_mimepart_free (php_mailparse_mime.c:333)
==26680==    by 0x3AD544: zend_hash_destroy (zend_hash.c:1398)
==26680==    by 0x10719E62: php_mimepart_free (php_mailparse_mime.c:333)
==26680==    by 0x3AD544: zend_hash_destroy (zend_hash.c:1398)
==26680==  Block was alloc'd at
==26680==    at 0x4C2CB6B: malloc (vg_replace_malloc.c:299)
==26680==    by 0x3737D8: __zend_malloc (zend_alloc.c:2898)
==26680==    by 0x39FA11: UnknownInlinedFun (zend_string.h:133)
==26680==    by 0x39FA11: UnknownInlinedFun (zend_string.h:155)
==26680==    by 0x39FA11: add_assoc_string_ex (zend_API.c:1418)
==26680==    by 0x1071A5D4: php_mimepart_process_header (php_mailparse_mime.c:455)
==26680==    by 0x1071AB69: php_mimepart_process_line (php_mailparse_mime.c:635)
==26680==    by 0x1071AB69: php_mimepart_parse (php_mailparse_mime.c:724)
==26680==    by 0x10716184: zif_mailparse_msg_parse (mailparse.c:1059)
==26680==    by 0x4280B6: ZEND_DO_ICALL_SPEC_RETVAL_UNUSED_HANDLER (zend_vm_execute.h:645)
==26680==    by 0x4280B6: execute_ex (zend_vm_execute.h:54537)
==26680==    by 0x42E022: zend_execute (zend_vm_execute.h:59965)
==26680==    by 0x39DB11: zend_execute_scripts (zend.c:1564)
==26680==    by 0x33DA4F: php_execute_script (main.c:2608)
==26680==    by 0x43047B: do_cli (php_cli.c:1002)
==26680==    by 0x1F518A: main (php_cli.c:1395)

Contributor

remicollet commented Jul 11, 2018

Valgrind reports something interesting:

==26680== Invalid read of size 4
==26680==    at 0x3AD632: gc_check_possible_root (zend_gc.h:72)
==26680==    by 0x3AD632: i_zval_ptr_dtor (zend_variables.h:51)
==26680==    by 0x3AD632: zend_array_destroy (zend_hash.c:1472)
==26680==    by 0x3DCF47: zend_assign_to_variable (zend_execute.h:110)
==26680==    by 0x3DCF47: ZEND_ASSIGN_SPEC_CV_VAR_RETVAL_UNUSED_HANDLER (zend_vm_execute.h:45071)
==26680==    by 0x4258EC: execute_ex (zend_vm_execute.h:59325)
==26680==    by 0x42E022: zend_execute (zend_vm_execute.h:59965)
==26680==    by 0x39DB11: zend_execute_scripts (zend.c:1564)
==26680==    by 0x33DA4F: php_execute_script (main.c:2608)
==26680==    by 0x43047B: do_cli (php_cli.c:1002)
==26680==    by 0x1F518A: main (php_cli.c:1395)
==26680==  Address 0x10a90d64 is 4 bytes inside a block of size 40 free'd
==26680==    at 0x4C2DD18: free (vg_replace_malloc.c:530)
==26680==    by 0x3AD7C4: i_zval_ptr_dtor (zend_variables.h:49)
==26680==    by 0x3AD7C4: zend_array_destroy (zend_hash.c:1472)
==26680==    by 0x10719F79: php_mimepart_free (php_mailparse_mime.c:356)
==26680==    by 0x3AD544: zend_hash_destroy (zend_hash.c:1398)
==26680==    by 0x10719E62: php_mimepart_free (php_mailparse_mime.c:333)
==26680==    by 0x3AD544: zend_hash_destroy (zend_hash.c:1398)
==26680==    by 0x10719E62: php_mimepart_free (php_mailparse_mime.c:333)
==26680==    by 0x3AD544: zend_hash_destroy (zend_hash.c:1398)
==26680==    by 0x10719E62: php_mimepart_free (php_mailparse_mime.c:333)
==26680==    by 0x3AD544: zend_hash_destroy (zend_hash.c:1398)
==26680==    by 0x10719E62: php_mimepart_free (php_mailparse_mime.c:333)
==26680==    by 0x3AD544: zend_hash_destroy (zend_hash.c:1398)
==26680==  Block was alloc'd at
==26680==    at 0x4C2CB6B: malloc (vg_replace_malloc.c:299)
==26680==    by 0x3737D8: __zend_malloc (zend_alloc.c:2898)
==26680==    by 0x39FA11: UnknownInlinedFun (zend_string.h:133)
==26680==    by 0x39FA11: UnknownInlinedFun (zend_string.h:155)
==26680==    by 0x39FA11: add_assoc_string_ex (zend_API.c:1418)
==26680==    by 0x1071A5D4: php_mimepart_process_header (php_mailparse_mime.c:455)
==26680==    by 0x1071AB69: php_mimepart_process_line (php_mailparse_mime.c:635)
==26680==    by 0x1071AB69: php_mimepart_parse (php_mailparse_mime.c:724)
==26680==    by 0x10716184: zif_mailparse_msg_parse (mailparse.c:1059)
==26680==    by 0x4280B6: ZEND_DO_ICALL_SPEC_RETVAL_UNUSED_HANDLER (zend_vm_execute.h:645)
==26680==    by 0x4280B6: execute_ex (zend_vm_execute.h:54537)
==26680==    by 0x42E022: zend_execute (zend_vm_execute.h:59965)
==26680==    by 0x39DB11: zend_execute_scripts (zend.c:1564)
==26680==    by 0x33DA4F: php_execute_script (main.c:2608)
==26680==    by 0x43047B: do_cli (php_cli.c:1002)
==26680==    by 0x1F518A: main (php_cli.c:1395)

@@ -1159,9 +1168,13 @@ PHP_FUNCTION(mailparse_msg_get_structure)
mailparse_fetch_mimepart_resource(part, arg);
#if PHP_VERSION_ID >= 70300
array_init(return_value);
#else

This comment has been minimized.

@nikic

nikic Jul 11, 2018

Member

You can drop the else branch here. array_init was already infallible before.

@nikic

nikic Jul 11, 2018

Member

You can drop the else branch here. array_init was already infallible before.

@Jan-E Jan-E referenced this pull request Jul 13, 2018

Merged

PHP 7.3 Compatibility #364

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment