summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorXinchen Hui <laruence@php.net>2015-01-17 23:04:41 -0500
committerXinchen Hui <laruence@php.net>2015-01-17 23:04:41 -0500
commit89beb12fefdfe9a9b56f1db9027d9bfaeb895b31 (patch)
tree5c965cda75a3475fcdb3be358e7110a30c87ce5e /ext
parentad32e033274ea49d05164418241946d2f1798894 (diff)
downloadphp-git-89beb12fefdfe9a9b56f1db9027d9bfaeb895b31.tar.gz
Fixed bug #68809 (Unchecked return value)
Diffstat (limited to 'ext')
-rw-r--r--ext/phar/tar.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/ext/phar/tar.c b/ext/phar/tar.c
index 6d3daf5c62..0195a515bd 100644
--- a/ext/phar/tar.c
+++ b/ext/phar/tar.c
@@ -481,7 +481,14 @@ bail:
entry.link = estrdup(hdr->linkname);
}
phar_set_inode(&entry);
- newentry = zend_hash_str_add_mem(&myphar->manifest, entry.filename, entry.filename_len, (void*)&entry, sizeof(phar_entry_info));
+ if ((newentry = zend_hash_str_add_mem(&myphar->manifest, entry.filename, entry.filename_len, (void*)&entry, sizeof(phar_entry_info))) == NULL) {
+ if (error) {
+ spprintf(error, 4096, "phar error: tar-based phar \"%s\" cannot be registered", entry.filename);
+ }
+ php_stream_close(fp);
+ phar_destroy_phar_data(myphar);
+ return FAILURE;
+ }
if (entry.is_persistent) {
++entry.manifest_pos;