From 7916f1c1f075eda649195765251f087cac16af23 Mon Sep 17 00:00:00 2001 From: Marcus Boerger Date: Tue, 25 Mar 2008 22:05:22 +0000 Subject: [PATCH] MFH: - Fix memory leak found by Osman - Merge strlen to sizof change from CLI --- sapi/embed/php_embed.c | 37 +++++++++++++++++-------------------- 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/sapi/embed/php_embed.c b/sapi/embed/php_embed.c index 5b0c63c1e3..67e842b585 100644 --- a/sapi/embed/php_embed.c +++ b/sapi/embed/php_embed.c @@ -24,13 +24,13 @@ #include #endif -#define HARDCODED_INI \ - "html_errors=0\n" \ - "register_argc_argv=1\n" \ - "implicit_flush=1\n" \ - "output_buffering=0\n" \ - "max_execution_time=0\n" \ - "max_input_time=-1\n" +const char HARDCODED_INI[] = + "html_errors=0\n" + "register_argc_argv=1\n" + "implicit_flush=1\n" + "output_buffering=0\n" + "max_execution_time=0\n" + "max_input_time=-1\n\0"; static char* php_embed_read_cookies(TSRMLS_D) { @@ -146,7 +146,6 @@ int php_embed_init(int argc, char **argv PTSRMLS_DC) #ifdef ZTS void ***tsrm_ls = NULL; #endif - int ini_entries_len = 0; #ifdef HAVE_SIGNAL_H #if defined(SIGPIPE) && defined(SIG_IGN) @@ -159,26 +158,24 @@ int php_embed_init(int argc, char **argv PTSRMLS_DC) #endif #endif -#ifdef PHP_WIN32 - _fmode = _O_BINARY; /*sets default for file streams to binary */ - setmode(_fileno(stdin), O_BINARY); /* make the stdio mode be binary */ - setmode(_fileno(stdout), O_BINARY); /* make the stdio mode be binary */ - setmode(_fileno(stderr), O_BINARY); /* make the stdio mode be binary */ -#endif - #ifdef ZTS tsrm_startup(1, 1, 0, NULL); tsrm_ls = ts_resource(0); *ptsrm_ls = tsrm_ls; #endif - ini_entries_len = strlen(HARDCODED_INI); - php_embed_module.ini_entries = malloc(ini_entries_len+2); - memcpy(php_embed_module.ini_entries, HARDCODED_INI, ini_entries_len+1); - php_embed_module.ini_entries[ini_entries_len+1] = 0; - sapi_startup(&php_embed_module); +#ifdef PHP_WIN32 + _fmode = _O_BINARY; /*sets default for file streams to binary */ + setmode(_fileno(stdin), O_BINARY); /* make the stdio mode be binary */ + setmode(_fileno(stdout), O_BINARY); /* make the stdio mode be binary */ + setmode(_fileno(stderr), O_BINARY); /* make the stdio mode be binary */ +#endif + + php_embed_module.ini_entries = malloc(sizeof(HARDCODED_INI)); + memcpy(php_embed_module.ini_entries, HARDCODED_INI, sizeof(HARDCODED_INI)); + if (argv) { php_embed_module.executable_location = argv[0]; } -- 2.40.0