From 36416f1109aa3737c1dfc232655201890644e4ab Mon Sep 17 00:00:00 2001 From: Zeev Suraski <zeev@php.net> Date: Sat, 26 Jun 1999 12:27:49 +0000 Subject: [PATCH] Protect against NULL arguments in filename --- main/main.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/main/main.c b/main/main.c index d311faa9cf..9d39c18fee 100644 --- a/main/main.c +++ b/main/main.c @@ -115,6 +115,8 @@ php_core_globals *main_core_globals=NULL; #endif +#define SAFE_FILENAME(f) ((f)?(f):"-") + static PHP_INI_MH(OnSetPrecision) { ELS_FETCH(); @@ -603,9 +605,9 @@ static void php_message_handler_for_zend(long message, void *data) void *ptr = (void *)((char *)t+sizeof(mem_header)+PLATFORM_PADDING); #if WIN32||WINNT - snprintf(memory_leak_buf, 512, "%s(%d) : Freeing 0x%0.8X (%d bytes), script=%s\n", t->filename, t->lineno, (unsigned long)ptr, t->size, SG(request_info).path_translated); + snprintf(memory_leak_buf, 512, "%s(%d) : Freeing 0x%0.8X (%d bytes), script=%s\n", t->filename, t->lineno, (unsigned long)ptr, t->size, SAFE_FILENAME(SG(request_info).path_translated)); #else - snprintf(memory_leak_buf, 512, "%s: Freeing 0x%0.8lX (%d bytes), allocated in %s on line %d<br>\n", SG(request_info).path_translated, (unsigned long)ptr, t->size,t->filename,t->lineno); + snprintf(memory_leak_buf, 512, "%s: Freeing 0x%0.8lX (%d bytes), allocated in %s on line %d<br>\n", SAFE_FILENAME(SG(request_info).path_translated), (unsigned long)ptr, t->size,t->filename,t->lineno); #endif } else { unsigned long leak_count = (unsigned long) data; @@ -613,7 +615,7 @@ static void php_message_handler_for_zend(long message, void *data) #if WIN32||WINNT snprintf(memory_leak_buf, 512, "Last leak repeated %ld time%s\n", leak_count, (leak_count>1?"s":"")); #else - snprintf(memory_leak_buf, 512, "%s: Last leak repeated %ld time%s\n", SG(request_info).path_translated, leak_count, (leak_count>1?"s":"")); + snprintf(memory_leak_buf, 512, "%s: Last leak repeated %ld time%s\n", SAFE_FILENAME(SG(request_info).path_translated), leak_count, (leak_count>1?"s":"")); #endif } # if WIN32||WINNT @@ -628,7 +630,7 @@ static void php_message_handler_for_zend(long message, void *data) case ZMSG_LOG_SCRIPT_NAME: { SLS_FETCH(); - fprintf(stderr, "Script: '%s'\n", SG(request_info).path_translated); + fprintf(stderr, "Script: '%s'\n", SAFE_FILENAME(SG(request_info).path_translated)); } break; } -- 2.40.0