Skip to content

Commit 775385d

Browse files
cmb69smalyshev
authored andcommitted
Fix #79797: Use of freed hash key in the phar_parse_zipfile function
We must not use heap memory after we freed it.
1 parent 24495ba commit 775385d

File tree

3 files changed

+15
-1
lines changed

3 files changed

+15
-1
lines changed

ext/phar/tests/bug79797.phar

274 Bytes
Binary file not shown.

ext/phar/tests/bug79797.phpt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
--TEST--
2+
Bug #79797 (Use of freed hash key in the phar_parse_zipfile function)
3+
--SKIPIF--
4+
<?php
5+
if (!extension_loaded('phar')) die('skip phar extension not available');
6+
?>
7+
--INI--
8+
phar.cache_list={PWD}/bug79797.phar
9+
--FILE--
10+
<?php
11+
echo "done\n";
12+
?>
13+
--EXPECT--
14+
done

ext/phar/zip.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -712,7 +712,7 @@ int phar_parse_zipfile(php_stream *fp, char *fname, size_t fname_len, char *alia
712712
efree(actual_alias);
713713
}
714714

715-
zend_hash_str_add_ptr(&(PHAR_G(phar_alias_map)), actual_alias, mydata->alias_len, mydata);
715+
zend_hash_str_add_ptr(&(PHAR_G(phar_alias_map)), mydata->alias, mydata->alias_len, mydata);
716716
} else {
717717
phar_archive_data *fd_ptr;
718718

0 commit comments

Comments
 (0)