Fix #70103: Fix bug 70103 when ZTS is enabled

Used snprintf to copy the basename string before it is freed
This commit is contained in:
Mitch Hagstrand 2017-01-06 02:14:12 -08:00 committed by Christoph M. Becker
parent ba0751a915
commit ad08aa3956
2 changed files with 7 additions and 6 deletions

View file

@ -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);