From: Stanislav Malyshev Date: Sun, 17 Jan 2016 04:43:43 +0000 (-0800) Subject: Fix bug #71391: NULL Pointer Dereference in phar_tar_setupmetadata() X-Git-Tag: php-5.5.32~13 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1c1b8b69982375700d4b011eb89ea48b66dbd5aa;p=php Fix bug #71391: NULL Pointer Dereference in phar_tar_setupmetadata() --- diff --git a/ext/phar/tar.c b/ext/phar/tar.c index 34ef0ef892..5f2680590e 100644 --- a/ext/phar/tar.c +++ b/ext/phar/tar.c @@ -880,6 +880,9 @@ static int phar_tar_setupmetadata(void *pDest, void *argument TSRMLS_DC) /* {{{ if (entry->filename_len >= sizeof(".phar/.metadata") && !memcmp(entry->filename, ".phar/.metadata", sizeof(".phar/.metadata")-1)) { if (entry->filename_len == sizeof(".phar/.metadata.bin")-1 && !memcmp(entry->filename, ".phar/.metadata.bin", sizeof(".phar/.metadata.bin")-1)) { + if (entry->phar->metadata == NULL) { + return ZEND_HASH_APPLY_REMOVE; + } return phar_tar_setmetadata(entry->phar->metadata, entry, error TSRMLS_CC); } /* search for the file this metadata entry references */ diff --git a/ext/phar/tests/bug71391.phpt b/ext/phar/tests/bug71391.phpt new file mode 100644 index 0000000000..b8d84f5375 --- /dev/null +++ b/ext/phar/tests/bug71391.phpt @@ -0,0 +1,18 @@ +--TEST-- +Phar: bug #71391: NULL Pointer Dereference in phar_tar_setupmetadata() +--SKIPIF-- + +--FILE-- +delMetaData(); +?> +DONE +--CLEAN-- + +--EXPECT-- +DONE \ No newline at end of file diff --git a/ext/phar/tests/bug71391.tar b/ext/phar/tests/bug71391.tar new file mode 100644 index 0000000000..a5b155ac87 Binary files /dev/null and b/ext/phar/tests/bug71391.tar differ