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