Hello Osman, thanks for finding this bug. I fixed the embed sapi however for all active branches so that the first version with the fix is 5.2.6. The reason to not apply your patch is that we expect sapi_startup() to be able to set ini_entries to NULL and in fact this is supposed to not be used before this initialization.
marcus Tuesday, March 25, 2008, 12:25:38 PM, you wrote: > Hey all, > In main/SAPI.c's sapi_startup, sf->ini_entries is set to NULL but is not > freed, which can cause a memory leak, e.g. in sapi/embed/php_embed.c which > calls that function after mallocing ini_entries (php_embed.c tries to free > that memory later, but the free is guarded by a check on ini_entries which > fails because it is already NULL). > --- php-5.2.5/main/SAPI.c 2007-05-25 12:20:01.000000000 +0300 > +++ php-5.2.5-fixed/main/SAPI.c 2008-03-25 13:12:53.000000000 +0200 > @@ -76,7 +76,10 @@ > SAPI_API void sapi_startup(sapi_module_struct *sf) > { > - sf->ini_entries = NULL; > + if (sf->ini_entries) { > + free(sf->ini_entries); > + sf->ini_entries = NULL; > + } > sapi_module = *sf; > #ifdef ZTS Best regards, Marcus -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php