Bug #64046 [Com]: Segmentation fault in pcre library
Edit report at https://bugs.php.net/bug.php?id=64046edit=1 ID: 64046 Comment by: php at richardneill dot org Reported by:public at miholeus dot com Summary:Segmentation fault in pcre library Status: Not a bug Type: Bug Package:PCRE related Operating System: Ubuntu 12.04.1 LTS PHP Version:Irrelevant Block user comment: N Private report: N New Comment: I've just been bitten by this bug too. It manifests as Connection Reset error on the website, and this in the apache logs: [Sun Jun 30 20:58:07 2013] [notice] child pid 32544 exit signal Segmentation fault (11) I do understand that the segfault isn't a PHP bug, but it would be really helpful if the error message could be more specific: something like segfault in PCRE at line X in file Y. Aside: another test-case. Here, it can be triggered by a value over about 5400: $input='span'.str_repeat('X', 5500).'/span'; $output = preg_replace(/span(((?!(\/span)).)*)\/span/, BEGIN \\1 END ,$input); If I reduce pcre.recursion_limit converts the segfault into a PCRE failure... but there is nothing that will make the RE actually work as intended. (in the contrived example, we can of course just use str_replace). Previous Comments: [2013-01-24 15:28:45] public at miholeus dot com I understand. Thanks for reply. [2013-01-24 08:35:09] paj...@php.net Not a PHP bug but pcre recursion classic stack crash, see the numerous other reports for more info. [2013-01-23 18:12:19] krak...@php.net This does cause a stack overflow, for some reason the default limits for recursion are very high, maybe someone has an explanation of that. You have: /'([^'])*'/ Shouldn't that be: /'([^']*)'/ ? [2013-01-22 13:47:19] public at miholeus dot com Description: The following code causes segmentation fault. You can see the code by link I've provided. Test script: --- Code http://pastebin.com/UzBjDaZU Expected result: no segfault Actual result: -- With gdb: (gdb) run /var/www/work/crm/trunk/pcre.php Starting program: /usr/bin/php /var/www/work/crm/trunk/pcre.php [Thread debugging using libthread_db enabled] Using host libthread_db library /lib/x86_64-linux-gnu/libthread_db.so.1. [New Thread 0x7fffe42e4700 (LWP 4329)] [Thread 0x7fffe42e4700 (LWP 4329) exited] Program received signal SIGSEGV, Segmentation fault. 0x76d99a62 in ?? () from /lib/x86_64-linux-gnu/libpcre.so.3 -- Edit this bug report at https://bugs.php.net/bug.php?id=64046edit=1
Bug #64046 [Com]: Segmentation fault in pcre library
Edit report at https://bugs.php.net/bug.php?id=64046edit=1 ID: 64046 Comment by: public at miholeus dot com Reported by:public at miholeus dot com Summary:Segmentation fault in pcre library Status: Not a bug Type: Bug Package:PCRE related Operating System: Ubuntu 12.04.1 LTS PHP Version:Irrelevant Block user comment: N Private report: N New Comment: I understand. Thanks for reply. Previous Comments: [2013-01-24 08:35:09] paj...@php.net Not a PHP bug but pcre recursion classic stack crash, see the numerous other reports for more info. [2013-01-23 18:12:19] krak...@php.net This does cause a stack overflow, for some reason the default limits for recursion are very high, maybe someone has an explanation of that. You have: /'([^'])*'/ Shouldn't that be: /'([^']*)'/ ? [2013-01-22 13:47:19] public at miholeus dot com Description: The following code causes segmentation fault. You can see the code by link I've provided. Test script: --- Code http://pastebin.com/UzBjDaZU Expected result: no segfault Actual result: -- With gdb: (gdb) run /var/www/work/crm/trunk/pcre.php Starting program: /usr/bin/php /var/www/work/crm/trunk/pcre.php [Thread debugging using libthread_db enabled] Using host libthread_db library /lib/x86_64-linux-gnu/libthread_db.so.1. [New Thread 0x7fffe42e4700 (LWP 4329)] [Thread 0x7fffe42e4700 (LWP 4329) exited] Program received signal SIGSEGV, Segmentation fault. 0x76d99a62 in ?? () from /lib/x86_64-linux-gnu/libpcre.so.3 -- Edit this bug report at https://bugs.php.net/bug.php?id=64046edit=1
Bug #64046 [Com]: Segmentation fault in pcre library
Edit report at https://bugs.php.net/bug.php?id=64046edit=1 ID: 64046 Comment by: krak...@php.net Reported by:public at miholeus dot com Summary:Segmentation fault in pcre library Status: Open Type: Bug Package:PCRE related Operating System: Ubuntu 12.04.1 LTS PHP Version:Irrelevant Block user comment: N Private report: N New Comment: This does cause a stack overflow, for some reason the default limits for recursion are very high, maybe someone has an explanation of that. You have: /'([^'])*'/ Shouldn't that be: /'([^']*)'/ ? Previous Comments: [2013-01-22 13:47:19] public at miholeus dot com Description: The following code causes segmentation fault. You can see the code by link I've provided. Test script: --- Code http://pastebin.com/UzBjDaZU Expected result: no segfault Actual result: -- With gdb: (gdb) run /var/www/work/crm/trunk/pcre.php Starting program: /usr/bin/php /var/www/work/crm/trunk/pcre.php [Thread debugging using libthread_db enabled] Using host libthread_db library /lib/x86_64-linux-gnu/libthread_db.so.1. [New Thread 0x7fffe42e4700 (LWP 4329)] [Thread 0x7fffe42e4700 (LWP 4329) exited] Program received signal SIGSEGV, Segmentation fault. 0x76d99a62 in ?? () from /lib/x86_64-linux-gnu/libpcre.so.3 -- Edit this bug report at https://bugs.php.net/bug.php?id=64046edit=1