ID:               27810
 Comment by:       ale at FreeBSD dot org
 Reported By:      renato at galle dot com dot br
 Status:           Closed
 Bug Type:         Apache2 related
 Operating System: FreeBSD-5.2.1-RELEASE-p4
 PHP Version:      4.3.5
 New Comment:

Hopefully fixed in php port with this patch:



http://www.freebsd.org/cgi/cvsweb.cgi/ports/lang/php4/files/patch-ext%3a%3apcre%3a%3aphp_pcre.c?rev=1.1&content-type=text/x-cvsweb-markup


Previous Comments:
------------------------------------------------------------------------

[2004-04-16 03:35:45] towerofpower at operamail dot com

You might want to take a look at...



http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20462



http://nagoya.apache.org/bugzilla/show_bug.cgi?id=17055



This seems very similar.



Apache 2.0.49, mod_ssl (OpenSSL 0.9.7d), PHP 4.3.6, mod_perl 1.99_13,
mod_delfate (zlib 1.1.4), perl 5.8.3



Built with VS.NET 2002 under Win2k, SP4 (except PHP 4.3.6 -- official
binary)



After 'net stop Apache2'...



Apache.exe - Application Error



The instruction at "0x77f92373" referenced memory at "0x00000010". The
memory could not be "written".





We do have a workaround for this problem:

set "LogLevel" under httpd.conf from "warn" to "error"

(this only works for a select set of versions of Apache and PHP)



If Apache2 is not started with "-D SSL" and PHP 4.3.6 is used (over
4.3.5), the app error does not happen.

------------------------------------------------------------------------

[2004-04-15 17:45:01] danu at drydog dot com

Here's the diffs between the old (working) version of PCRE and the new
(broken) version of PCRE. Note changes in memory allocation code, which
I believe is causing the problem:



Note: 4.3.4 works (1.29.2.3, 1.132.2.10)

Note: 4.3.5 is broken (1.29.2.5, 1.132.2.16)



diff pcre.4.3.4/config.m4 pcre.4.3.5/config.m4

2c2

< dnl $Id: config.m4,v 1.29.2.3 2003/06/29 00:08:29 andrei Exp $

---

> dnl $Id: config.m4,v 1.29.2.5 2003/12/16 22:14:55 andrei Exp $

Only in pcre.4.3.4: pcrelib

diff pcre.4.3.4/php_pcre.c pcre.4.3.5/php_pcre.c

19c19

< /* $Id: php_pcre.c,v 1.132.2.10 2003/09/12 01:32:38 sniper Exp $ */

---

> /* $Id: php_pcre.c,v 1.132.2.16 2004/02/01 19:56:16 moriyoshi Exp $
*/

108a109,117

> 

>       pcre_malloc = php_pcre_malloc;

>       pcre_free = php_pcre_free;

> 

> #ifdef NO_RECURSE

>       pcre_stack_malloc = php_pcre_malloc;

>       pcre_stack_free = php_pcre_free;

> #endif

>       

124,133d132

< /* {{{ PHP_RINIT_FUNCTION(pcre) */

< static PHP_RINIT_FUNCTION(pcre)

< {

<       pcre_malloc = php_pcre_malloc;

<       pcre_free = php_pcre_free;

<       

<       return SUCCESS;

< }

< /* }}} */

< 

177c176

<       while (isspace((int)*p)) p++;

---

>       while (isspace((int)*(unsigned char *)p)) p++;

186c185

<       if (isalnum((int)delimiter) || delimiter == '\\') {

---

>       if (isalnum((int)*(unsigned char *)&delimiter) || delimiter == '\\')
{

351c350

<       int                              flags;                         /* Match 
control flags */

---

>       long                             flags;                         /* Match 
> control flags */

365c364

<       int                              start_offset = 0;      /* Where the new 
search starts */

---

>       long                             start_offset = 0;      /* Where the new 
> search starts */

432c431

<               int name_cnt, name_size, ni = 0;

---

>               int name_cnt = 0, name_size, ni = 0;

1394a1394,1398

>                       case '\0':

>                               *q++ = '\\';

>                               *q++ = '0';

>                               break;

> 

1526c1530

<       PHP_RINIT(pcre),

---

>       NULL

------------------------------------------------------------------------

[2004-04-15 16:10:22] danu at drydog dot com

NOT fixed with php-4.3.6



I just tried this and it isn't fixed with PHP 4.3.6 either.

------------------------------------------------------------------------

[2004-04-13 19:28:27] loki at arete dot cc

I also tried the latest php4 snapshot, as well as the 

latest php4 release candidate, and CVS HEAD for both 

php4-STABLE and php5.



None of them worked. This bug is not fixed in CVS, in 

snaps, or anywhere. It's not documented as being fixed, 

and the problem is still there.



I finally got fed up and took ext/pcre from php-4.3.4 

and used that instead of what you shipped with php

-5.0.0rc1, and that works fine.

------------------------------------------------------------------------

[2004-04-12 02:55:30] loki at arete dot cc

I just tried the latest php5 snapshot. Problem still 

present.



Is it only fixed in php4 cvs?



Can you tell us what the problem actually is? There's 

still no documentation of it in Changelog or in NEWS.

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/27810

-- 
Edit this bug report at http://bugs.php.net/?id=27810&edit=1

Reply via email to