|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2010-04-26 02:20 UTC] surfchen at gmail dot com
[2016-12-31 18:49 UTC] cmb@php.net
-Status: Open
+Status: Suspended
[2016-12-31 18:49 UTC] cmb@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Fri Oct 24 18:00:01 2025 UTC |
Description: ------------ html_parse not works due to the failure of hash_create() and hash_destroy(). The problem may be that on mac osx, php5.3.2 links certain lib which has the symbols with name hash_create()/hash_destroy(). I changed hash_create() and hash_destroy() to hash_create2() and hash_destroy2() in src/ekhtml.c,src/hash.c,src/hash.h, then it works. Reproduce code: --------------- function f_data($text) { echo "Data: '$text'\n"; } $parser = html_parser_create(); html_parser_data_handler($parser, "f_data"); html_parser_parse($parser, "foo <x name='hello' id=23> <!-- <x></x> -->bar </x> baz"); html_parser_free($parser); Expected result: ---------------- Data: 'foo ' Data: ' ' Data: 'bar ' Data: ' baz' Actual result: -------------- Program received signal EXC_BAD_ACCESS, Could not access memory. Reason: KERN_PROTECTION_FAILURE at address: 0x0000001c 0x027b1af1 in hash_lookup (hash=0x0, hash_key=0xbfffec38) at hash.c:561 561 hkey = hash->function(key); /* 1 */ (gdb) bt #0 0x027b1af1 in hash_lookup (hash=0x0, hash_key=0xbfffec38) at hash.c:561 #1 0x027b0bbd in handle_starttag (parser=0x3550040, curp=0x2810a04 "<X name='hello' id=23> <!-- <x></x> -->bar </x> bazo \"Start: $tag\";\n", ' ' <repeats 12 times>, "}\n\n function f_end($tag) {\n echo \"End: $tag\\n\";\n }\n\n function f_data($text) {\n echo \"Data: "..., sstate=0x3550064) at ekhtml_starttag.c:136 #2 0x027b114e in ekhtml_parse_starttag (parser=0x3550040, state_data=0x355008c, curp=0xbfffec38 "\005\n?\002\001", endp=0x2810a37 "o \"Start: $tag\";\n", ' ' <repeats 12 times>, "}\n\n function f_end($tag) {\n echo \"End: $tag\\n\";\n }\n\n function f_data($text) {\n echo \"Data: '$text'\\n\";\n }\n\n function f_comment($text"..., baddata=0xbfffed1c) at ekhtml_starttag.c:356 #3 0x027afff5 in ekhtml_parser_flush (parser=0x3550040, flushall=0) at ekhtml.c:165 #4 0x027aa934 in zif_html_parser_parse (ht=-1073746888, return_value=0x1f3acc0, return_value_ptr=0x0, this_ptr=0x0, return_value_used=0) at code/html_parse-1.0.0/html_parse- 1.0.0/html_parse.c:499 #5 0x00383a17 in zend_do_fcall_common_helper_SPEC () #6 0x003828a5 in execute () #7 0x003548d6 in zend_execute_scripts () #8 0x002fb3d3 in php_execute_script () #9 0x003e3574 in main ()