]> granicus.if.org Git - php/commitdiff
Bugfix #24729 = new ; causes crash when is not set
authorMarcus Boerger <helly@php.net>
Sun, 20 Jul 2003 20:45:59 +0000 (20:45 +0000)
committerMarcus Boerger <helly@php.net>
Sun, 20 Jul 2003 20:45:59 +0000 (20:45 +0000)
Zend/zend_execute.c

index b5246f61d4202af5508c536e7913c660b2b0e036..cf4da2a0a1380884480c55f0fc962d667ee3ced5 100644 (file)
@@ -2380,21 +2380,21 @@ int zend_fetch_class_handler(ZEND_OPCODE_HANDLER_ARGS)
 
                if (class_name->type == IS_OBJECT) {
                        ce = Z_OBJCE_P(class_name);
-               } else {
+               } else if (class_name->value.str.val && class_name->value.str.len) {
                        class_name_strval = zend_str_tolower_dup(class_name->value.str.val, class_name->value.str.len);
                        class_name_strlen = class_name->value.str.len;
                        free_class_name = 1;
+               } else {
+                       class_name_strval = "";
+                       class_name_strlen = 0;
                }
        }
        
        if (!ce) {
-               int retval;
-
-               if (EX(opline)->op1.op_type == IS_UNUSED) {
-                       retval = zend_lookup_class(class_name_strval, class_name_strlen, &pce TSRMLS_CC);
-               }
-               if (retval==SUCCESS) {
-                       ce = *pce;
+               if (EX(opline)->op1.op_type == IS_UNUSED && class_name->value.str.val && class_name->value.str.len) {
+                       if (zend_lookup_class(class_name_strval, class_name_strlen, &pce TSRMLS_CC) == SUCCESS) {
+                               ce = *pce;
+                       }
                }
        }