From: Xinchen Hui Date: Sun, 24 Jul 2016 15:58:22 +0000 (+0800) Subject: Fixed bug #72660 (NULL Pointer dereference in zend_virtual_cwd) X-Git-Tag: php-7.0.10RC1~52 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ad96a052d918c7fcfaab702c4319acac20435d6b;p=php Fixed bug #72660 (NULL Pointer dereference in zend_virtual_cwd) --- diff --git a/NEWS b/NEWS index 5a01565a85..841af54b18 100644 --- a/NEWS +++ b/NEWS @@ -96,6 +96,10 @@ PHP NEWS - Wddx: . Fixed bug #72564 (boolean always deserialized as "true") (Remi) +- Zip: + . Fixed bug #72660 (NULL Pointer dereference in zend_virtual_cwd). + (Laruence) + 21 Jul 2016 PHP 7.0.9 - Core: diff --git a/ext/zip/php_zip.c b/ext/zip/php_zip.c index bdcba78b21..b9f0bb73ac 100644 --- a/ext/zip/php_zip.c +++ b/ext/zip/php_zip.c @@ -1619,10 +1619,10 @@ static void php_zip_add_from_pattern(INTERNAL_FUNCTION_PARAMETERS, int type) /* { struct zip *intern; zval *self = getThis(); - char *path = NULL; + char *path = "."; char *remove_path = NULL; char *add_path = NULL; - size_t add_path_len, remove_path_len = 0, path_len = 0; + size_t add_path_len, remove_path_len = 0, path_len = 1; zend_long remove_all_path = 0; zend_long flags = 0; zval *options = NULL; diff --git a/ext/zip/tests/bug72660.phpt b/ext/zip/tests/bug72660.phpt new file mode 100644 index 0000000000..af02b9b5a3 --- /dev/null +++ b/ext/zip/tests/bug72660.phpt @@ -0,0 +1,20 @@ +--TEST-- +Bug #72660 (NULL Pointer dereference in zend_virtual_cwd) +--SKIPIF-- + +--FILE-- +open(dirname(__FILE__) . "/bug72660.zip", ZIPARCHIVE::CREATE); +$zip->addPattern("/noexists/"); +?> +okey +--CLEAN-- + +--EXPECT-- +okey