From da5cad4ebdea23cb3f4e18027fca4fd90e7b70f7 Mon Sep 17 00:00:00 2001 From: Mitch Hagstrand Date: Fri, 6 Jan 2017 02:14:12 -0800 Subject: [PATCH] Fix #70103: Fix bug 70103 when ZTS is enabled Used snprintf to copy the basename string before it is freed --- ext/zip/php_zip.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ext/zip/php_zip.c b/ext/zip/php_zip.c index 706ae07a3d51b..9114eb4d76784 100644 --- a/ext/zip/php_zip.c +++ b/ext/zip/php_zip.c @@ -1699,18 +1699,18 @@ static void php_zip_add_from_pattern(INTERNAL_FUNCTION_PARAMETERS, int type) /* zval_ptr_dtor(return_value); RETURN_FALSE; } - snprintf(entry_name_buf, MAXPATHLEN, "%s%s", add_path, file_stripped); - entry_name = entry_name_buf; - entry_name_len = strlen(entry_name); } else { - entry_name = file_stripped; - entry_name_len = file_stripped_len; + snprintf(entry_name_buf, MAXPATHLEN, "%s", file_stripped); } + + entry_name = entry_name_buf; + entry_name_len = strlen(entry_name); if (basename) { zend_string_release(basename); basename = NULL; } + if (php_zip_add_file(intern, Z_STRVAL_P(zval_file), Z_STRLEN_P(zval_file), entry_name, entry_name_len, 0, 0) < 0) { zval_dtor(return_value);