]> granicus.if.org Git - php/commitdiff
Fixed possible access to uninitialized data (prevents valgrind issues in Zend/tests...
authorDmitry Stogov <dmitry@zend.com>
Tue, 4 Aug 2015 07:48:32 +0000 (10:48 +0300)
committerDmitry Stogov <dmitry@zend.com>
Tue, 4 Aug 2015 07:48:32 +0000 (10:48 +0300)
Zend/zend_vm_def.h
Zend/zend_vm_execute.h

index 10b947d7d2e18c45a52c1f73008adaa113549896..b3ae031dee2b89fb35d8a62aa070cd188586a9ce 100644 (file)
@@ -4292,6 +4292,8 @@ ZEND_VM_HANDLER(67, ZEND_SEND_REF, VAR|CV, ANY)
 
        if (OP1_TYPE == IS_VAR && UNEXPECTED(varptr == NULL)) {
                zend_throw_error(NULL, "Only variables can be passed by reference");
+               arg = ZEND_CALL_VAR(EX(call), opline->result.var);
+               ZVAL_UNDEF(arg);
                HANDLE_EXCEPTION();
        }
 
index c580ba04d7df80d173a0782658646a291a607797..f1927ff7f66f4e3ae1942b0f8363996d41e474f4 100644 (file)
@@ -15248,6 +15248,8 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_REF_SPEC_VAR_HANDLER(ZEND
 
        if (IS_VAR == IS_VAR && UNEXPECTED(varptr == NULL)) {
                zend_throw_error(NULL, "Only variables can be passed by reference");
+               arg = ZEND_CALL_VAR(EX(call), opline->result.var);
+               ZVAL_UNDEF(arg);
                HANDLE_EXCEPTION();
        }
 
@@ -28630,6 +28632,8 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_REF_SPEC_CV_HANDLER(ZEND_
 
        if (IS_CV == IS_VAR && UNEXPECTED(varptr == NULL)) {
                zend_throw_error(NULL, "Only variables can be passed by reference");
+               arg = ZEND_CALL_VAR(EX(call), opline->result.var);
+               ZVAL_UNDEF(arg);
                HANDLE_EXCEPTION();
        }