cvs: ZendEngine2(PHP_5_3) / zend_API.c zend_execute_API.c
| From: | Dmitry Stogov | Date: | Sat, 26 Jul 2008 18:32:20 +0000 |
| Subject: | cvs: ZendEngine2(PHP_5_3) / zend_API.c zend_execute_API.c | ||
| Groups: | php.zend-engine.cvs | ||
| Request: | Send a blank email to php-zend-engine-cvs+get-6948@lists.php.net to get a copy of this message | ||
dmitry Sat Jul 26 18:32:20 2008 UTC
Modified files: (Branch: PHP_5_3)
/ZendEngine2 zend_API.c zend_execute_API.c
Log:
Added checks for destroied objects
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_API.c?r1=1.296.2.27.2.34.2.43&r2=1.296.2.27.2.34.2.44&diff_format=u
Index: ZendEngine2/zend_API.c
diff -u ZendEngine2/zend_API.c:1.296.2.27.2.34.2.43 ZendEngine2/zend_API.c:1.296.2.27.2.34.2.44
--- ZendEngine2/zend_API.c:1.296.2.27.2.34.2.43 Sat Jul 26 13:14:00 2008
+++ ZendEngine2/zend_API.c Sat Jul 26 18:32:20 2008
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_API.c,v 1.296.2.27.2.34.2.43 2008/07/26 13:14:00 dmitry Exp $ */
+/* $Id: zend_API.c,v 1.296.2.27.2.34.2.44 2008/07/26 18:32:20 dmitry Exp $ */
#include "zend.h"
#include "zend_execute.h"
@@ -2573,6 +2573,15 @@
fcc->calling_scope = NULL;
fcc->object_pp = NULL;
+ if (object_pp && (!*object_pp || Z_TYPE_PP(object_pp) != IS_OBJECT)) {
+ object_pp = NULL;
+ }
+ if (object_pp &&
+ (!EG(objects_store).object_buckets ||
+ !EG(objects_store).object_buckets[Z_OBJ_HANDLE_PP(object_pp)].valid)) {
+ return 0;
+ }
+
switch (Z_TYPE_P(callable)) {
case IS_STRING:
if (object_pp && *object_pp) {
@@ -2648,6 +2657,11 @@
}
} else {
+ if (!EG(objects_store).object_buckets ||
+ !EG(objects_store).object_buckets[Z_OBJ_HANDLE_PP(obj)].valid) {
+ return 0;
+ }
+
fcc->calling_scope = Z_OBJCE_PP(obj); /* TBFixed: what if it's overloaded? */
fcc->object_pp = obj;
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_execute_API.c?r1=1.331.2.20.2.24.2.47&r2=1.331.2.20.2.24.2.48&diff_format=u
Index: ZendEngine2/zend_execute_API.c
diff -u ZendEngine2/zend_execute_API.c:1.331.2.20.2.24.2.47
ZendEngine2/zend_execute_API.c:1.331.2.20.2.24.2.48
--- ZendEngine2/zend_execute_API.c:1.331.2.20.2.24.2.47 Sat Jul 26 17:01:40 2008
+++ ZendEngine2/zend_execute_API.c Sat Jul 26 18:32:20 2008
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_execute_API.c,v 1.331.2.20.2.24.2.47 2008/07/26 17:01:40 dmitry Exp $ */
+/* $Id: zend_execute_API.c,v 1.331.2.20.2.24.2.48 2008/07/26 18:32:20 dmitry Exp $ */
#include <stdio.h>
#include <signal.h>
@@ -744,7 +744,9 @@
zend_error(E_STRICT, "%s", error);
efree(error);
}
- efree(callable_name);
+ if (callable_name) {
+ efree(callable_name);
+ }
}
EX(function_state).function = fci_cache->function_handler;