]> granicus.if.org Git - php/commitdiff
Call zpp_none in PharFileInfo::__destruct()
authorNikita Popov <nikita.ppv@gmail.com>
Mon, 20 Jul 2020 14:39:43 +0000 (16:39 +0200)
committerNikita Popov <nikita.ppv@gmail.com>
Tue, 21 Jul 2020 08:18:33 +0000 (10:18 +0200)
Using __destruct() with internal classes is dubious, but not so
simple to avoid here because the code extends SPL classes.

ext/phar/phar_object.c

index 4766c2be1d9c848c0d3b6a778a141222ce29b0a3..74f1ea4b737e81500232536032ce9621f2aa0a30 100644 (file)
@@ -4456,6 +4456,10 @@ PHP_METHOD(PharFileInfo, __destruct)
        zval *zobj = ZEND_THIS;
        phar_entry_object *entry_obj = (phar_entry_object*)((char*)Z_OBJ_P(zobj) - Z_OBJ_P(zobj)->handlers->offset);
 
+       if (zend_parse_parameters_none() == FAILURE) {
+               RETURN_THROWS();
+       }
+
        if (entry_obj->entry && entry_obj->entry->is_temp_dir) {
                if (entry_obj->entry->filename) {
                        efree(entry_obj->entry->filename);