From 46561dab6a3602bd5f17ef8c0786f4a0f1fc1e9c Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Thu, 10 Oct 2019 16:14:04 +0200 Subject: [PATCH] Fix leak in phar open --- ext/phar/phar.c | 1 + ext/phar/tests/bug77396.phpt | 14 +++++++------- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/ext/phar/phar.c b/ext/phar/phar.c index f1155e6274..ba76a9b0e0 100644 --- a/ext/phar/phar.c +++ b/ext/phar/phar.c @@ -1386,6 +1386,7 @@ int phar_create_or_parse_filename(char *fname, int fname_len, char *alias, int a mydata = ecalloc(1, sizeof(phar_archive_data)); mydata->fname = expand_filepath(fname, NULL); if (mydata->fname == NULL) { + efree(mydata); return FAILURE; } fname_len = strlen(mydata->fname); diff --git a/ext/phar/tests/bug77396.phpt b/ext/phar/tests/bug77396.phpt index ede25ff81f..7dc834aa45 100644 --- a/ext/phar/tests/bug77396.phpt +++ b/ext/phar/tests/bug77396.phpt @@ -5,11 +5,11 @@ Bug #77396 Relative filename exceeding maximum path length causes null pointer d --FILE-- getMessage(), "\n"; +} ?> ---EXPECTF-- -Fatal error: Uncaught UnexpectedValueException: Phar creation or opening failed in %s%ebug77396.php:%d -Stack trace: -#0 %s%ebug77396.php(%d): PharData->__construct(%s) -#1 {main} - thrown in %s%ebug77396.php on line %d +--EXPECT-- +Phar creation or opening failed -- 2.49.0