]> granicus.if.org Git - php/commitdiff
Don't keep dangling pointers.
authorDmitry Stogov <dmitry@zend.com>
Tue, 23 Aug 2016 09:58:46 +0000 (12:58 +0300)
committerDmitry Stogov <dmitry@zend.com>
Tue, 23 Aug 2016 09:58:46 +0000 (12:58 +0300)
ext/opcache/Optimizer/zend_optimizer.c

index 113a1a5f836294d3935a65760c1b2472974ba7de..3092b9635f3a7a93ccb68c2d94e6bb9b3962d21a 100644 (file)
@@ -947,12 +947,15 @@ int zend_optimize_script(zend_script *script, zend_long optimization_level, zend
                        func_info = ZEND_FUNC_INFO(call_graph.op_arrays[i]);
                        if (func_info && func_info->ssa.var_info) {
                                zend_redo_pass_two_ex(call_graph.op_arrays[i], &func_info->ssa);
-                               ZEND_SET_FUNC_INFO(call_graph.op_arrays[i], NULL);
                        } else {
                                zend_redo_pass_two(call_graph.op_arrays[i]);
                        }
                }
 
+               for (i = 0; i < call_graph.op_arrays_count; i++) {
+                       ZEND_SET_FUNC_INFO(call_graph.op_arrays[i], NULL);
+               }
+
                zend_arena_release(&ctx.arena, checkpoint);
        } else
 #endif