ID:               17566
 Updated by:       [EMAIL PROTECTED]
 Reported By:      [EMAIL PROTECTED]
-Status:           Analyzed
+Status:           Feedback
 Bug Type:         Apache2 related
 Operating System: BSD/OS 4.2
 PHP Version:      4.3-dev
 New Comment:

Please try using this CVS snapshot:

  http://snaps.php.net/php4-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php4-win32-latest.zip

The memory leak problem has been corrected, can you please check if the
phpinfo() still drives up the load.


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

[2002-10-09 13:26:20] [EMAIL PROTECTED]

--disable-debug affects the display of the memory leak :-)

It does not affect the error itself. Still an increasing load.
I've added some trace warnings, and it seems that every string is
passed through php_escape_html_entities twice! Here's an anonimized
snippet:
PHP Warning:  oldlen is 15. old is <SERVER_SOFTWARE>,
newlen=1210382182, all=1, quote_style=2, hint_charset is <(null)>
 in /webdocs/host.domain.nl/public_html/script.php on line 2
PHP Warning:  Putting a terminator at position 15 in
/webdocs/host.domain.nl/public_html/script.php on line 2
PHP Warning:  Returning replaced <SERVER_SOFTWARE> (len=15) in
/webdocs/host.domain.nl/public_html/script.php on line 2
PHP Warning:  oldlen is 15. old is <SERVER_SOFTWARE>,
newlen=1211165388, all=1, quote_style=2, hint_charset is <(null)>
 in /webdocs/host.domain.nl/public_html/script.php on line 2
PHP Warning:  Putting a terminator at position 15 in
/webdocs/host.domain.nl/public_html/script.php on line 2
PHP Warning:  Returning replaced <SERVER_SOFTWARE> (len=15) in
/webdocs/host.domain.nl/public_html/script.php on line 2
PHP Warning:  oldlen is 34. old is <Apache/2.0.43 (Unix)
PHP/4.4.0-dev>, newlen=1210382258, all=1, quote_style=2, hint_chars
et is <(null)>
 in /webdocs/host.domain.nl/public_html/script.php on line 2
PHP Warning:  Putting a terminator at position 34 in
/webdocs/host.domain.nl/public_html/script.php on line 2
PHP Warning:  Returning replaced <Apache/2.0.43 (Unix) PHP/4.4.0-dev>
(len=34) in /webdocs/host.domain.nl/public_html/php
2345.php on line 2
PHP Warning:  oldlen is 34. old is <Apache/2.0.43 (Unix)
PHP/4.4.0-dev>, newlen=1211165388, all=1, quote_style=2, hint_chars
et is <(null)>
 in /webdocs/host.domain.nl/public_html/script.php on line 2
PHP Warning:  Putting a terminator at position 34 in
/webdocs/host.domain.nl/public_html/script.php on line 2
PHP Warning:  Returning replaced <Apache/2.0.43 (Unix) PHP/4.4.0-dev>
(len=34) in /webdocs/host.domain.nl/public_html/php
2345.php on line 2

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

[2002-10-07 06:41:36] [EMAIL PROTECTED]

The problem is in the recent changes to ext/standard/info.c which is
calling php_escape_html_entities (via php_info_html_esc) and PUTS()-ing
the result.
It never efree's it.
I suspect the loading problems will go away if you build a
--disable-debug version of PHP.

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

[2002-10-06 23:09:07] [EMAIL PROTECTED]

PHPAPI char *php_escape_html_entities(unsigned char *old, int oldlen,
int *newlen, int all, int quote_style, char *hint_char
set TSRMLS_DC)
{
    int i, j, maxlen, len;
    char *replaced;
    enum entity_charset charset = determine_charset(hint_charset
TSRMLS_CC);
    int matches_map;

    maxlen = 2 * oldlen;
    if (maxlen < 128)
        maxlen = 128;    replaced = emalloc (maxlen); // #line 667
    len = 0;

    i = 0;
    while (i < oldlen) {
....

        }           
    }
    replaced[len] = '\0';
...


So what happens if oldlen = 0 and more importantly: how can oldlen
become 0?

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

[2002-10-06 23:01:29] [EMAIL PROTECTED]

hmm......that is a hint:
/home/mdev/cvs/php4/ext/standard/html.c(667) :  Freeing 0x0820BA24 (396
bytes), script=-
Last leak repeated 383 times

383 times?

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

[2002-10-06 22:57:30] [EMAIL PROTECTED]

No change at all.
Apache 2.0.43.

load averages:  6.81,  3.75,  1.91
149 processes: 2 running, 147 sleeping
CPU states:  0.2% user,  0.0% nice,  0.2% system,  0.0% interrupt,
99.6% idle
Memory: Real: 318M/397M Virt: 440M/1252M Free: 477M


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

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/17566

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

Reply via email to