]> granicus.if.org Git - php/commitdiff
Fix SEGV in certain conditions while calling static methods
authorMarcus Boerger <helly@php.net>
Tue, 16 Mar 2004 21:29:22 +0000 (21:29 +0000)
committerMarcus Boerger <helly@php.net>
Tue, 16 Mar 2004 21:29:22 +0000 (21:29 +0000)
Zend/zend_execute_API.c

index 2a46150f58bfb720d44d77f5217fe3593722eb89..9dcd2dbdec44187a555fa4903b2c6fb63e6965f8 100644 (file)
@@ -645,13 +645,13 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache TS
                                        fci->object_pp = EG(This)?&EG(This):NULL;
                                } else {
                                        zend_class_entry *scope;
-                                       scope = EG(active_op_array)->scope; 
+                                       scope = EG(active_op_array) ? EG(active_op_array)->scope : NULL;
 
                                        found = zend_lookup_class(Z_STRVAL_PP(fci->object_pp), Z_STRLEN_PP(fci->object_pp), &ce TSRMLS_CC);
                                        if (found == FAILURE) {
                                                zend_error(E_ERROR, "Class '%s' not found", Z_STRVAL_PP(fci->object_pp));
                                        }
-                                       if (EG(This) && 
+                                       if (scope && EG(This) && 
                                                instanceof_function(Z_OBJCE_P(EG(This)), scope TSRMLS_CC) &&
                                                instanceof_function(scope, *ce TSRMLS_CC)) {
                                                fci->object_pp = &EG(This);