[xdebug-dev] xdebug xdebug/php_xdebug.h xdebug/xdebug.c - Fixed bug #171: set_time_limit stack overflow on 2nd request.

From: Derick Rethans <derick[@]derickrethans.nl>
Date: Fri, 10 Mar 2006 13:10:26 +0100

Date: Fri Mar 10 13:10:26 CET 2006
User: Derick Rethans
Directory: xdebug

Log Message:
[0.25]
- Fixed bug #171: set_time_limit stack overflow on 2nd request.

Modified files:
           xdebug/php_xdebug.h (version: 1.103)
           xdebug/xdebug.c (version: 1.305)

[FILE: /xdebug/php_xdebug.h]

===================================================================
RCS file: cvstemp,v
retrieving revision 1.102
retrieving revision 1.103
diff -u -r1.102 -r1.103
--- xdebug/php_xdebug.h:1.102 Tue Mar 07 20:30:54 2006 GMT
+++ xdebug/php_xdebug.h Fri Mar 10 11:10:25 2006 GMT
@@ -118,6 +118,7 @@
         HashTable *active_symbol_table;
         unsigned int prev_memory;
 
+ void (*orig_var_dump_func)(INTERNAL_FUNCTION_PARAMETERS);
         void (*orig_set_time_limit_func)(INTERNAL_FUNCTION_PARAMETERS);
 
         FILE *trace_file;

[FILE: /xdebug/xdebug.c]

===================================================================
RCS file: cvstemp,v
retrieving revision 1.304
retrieving revision 1.305
diff -u -r1.304 -r1.305
--- xdebug/xdebug.c:1.304 Thu Mar 09 20:32:44 2006 GMT
+++ xdebug/xdebug.c Fri Mar 10 11:10:26 2006 GMT
@@ -719,6 +719,7 @@
 
         /* Override var_dump with our own function */
         zend_hash_find(EG(function_table), "var_dump", 9, (void **)&orig);
+ XG(orig_var_dump_func) = orig->internal_function.handler;
         orig->internal_function.handler = zif_xdebug_var_dump;
 
         /* Override set_time_limit with our own function to prevent timing out while debugging */
@@ -737,6 +738,8 @@
 PHP_RSHUTDOWN_FUNCTION(xdebug)
 {
 #endif
+ zend_function *orig;
+
         xdebug_llist_destroy(XG(stack), NULL);
         XG(stack) = NULL;
 
@@ -779,6 +782,12 @@
                 xdfree(XG(context).list.last_file);
         }
 
+ /* Reset var_dump and set_time_limit to the original function */
+ zend_hash_find(EG(function_table), "var_dump", 9, (void **)&orig);
+ orig->internal_function.handler = XG(orig_var_dump_func);
+ zend_hash_find(EG(function_table), "set_time_limit", 15, (void **)&orig);
+ orig->internal_function.handler = XG(orig_set_time_limit_func);
+
         return SUCCESS;
 }
 
Received on Fri Mar 10 2006 - 13:10:29 GMT

This archive was generated by hypermail 2.2.0 : Sun Jun 24 2018 - 04:00:03 BST