com php-src: Fixed Segfault: Zend/zend_list.c Zend/zend _list.h

From: Date: Mon, 17 Feb 2014 14:47:52 +0000
Subject: com php-src: Fixed Segfault: Zend/zend_list.c Zend/zend _list.h
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-78063@lists.php.net to get a copy of this message
Commit: 6d77ca06b95b9a37d7d8dbf8a9f99d9407920a11 Author: Xinchen Hui <laruence@gmail.com> Mon, 17 Feb 2014 22:47:52 +0800 Parents: 2b9b9afa7a9a66f9c80013ce4121183bdff434e8 Branches: phpng Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=6d77ca06b95b9a37d7d8dbf8a9f99d9407920a11 Log: Fixed Segfault Changed paths: M Zend/zend_list.c M Zend/zend_list.h Diff: diff --git a/Zend/zend_list.c b/Zend/zend_list.c index 3dbe72c..8bc5161 100644 --- a/Zend/zend_list.c +++ b/Zend/zend_list.c @@ -137,7 +137,7 @@ void list_entry_destructor(zval *zv) break; case ZEND_RESOURCE_LIST_TYPE_EX: if (ld->list_dtor_ex) { - ld->list_dtor_ex(res->ptr TSRMLS_CC); + ld->list_dtor_ex(res TSRMLS_CC); } break; EMPTY_SWITCH_DEFAULT_CASE() @@ -225,14 +225,14 @@ void zend_clean_module_rsrc_dtors(int module_number TSRMLS_DC) } -ZEND_API int zend_register_list_destructors(void (*ld)(void *), void (*pld)(void *), int module_number) +ZEND_API int zend_register_list_destructors(rsrc_dtor_func_t ld, rsrc_dtor_func_t pld, int module_number) { zend_rsrc_list_dtors_entry *lde; zval zv; lde = malloc(sizeof(zend_rsrc_list_dtors_entry)); - lde->list_dtor=(void (*)(void *)) ld; - lde->plist_dtor=(void (*)(void *)) pld; + lde->list_dtor = ld; + lde->plist_dtor = pld; lde->list_dtor_ex = lde->plist_dtor_ex = NULL; lde->module_number = module_number; lde->resource_id = list_destructors.nNextFreeElement; diff --git a/Zend/zend_list.h b/Zend/zend_list.h index 8811a97..52b171e 100644 --- a/Zend/zend_list.h +++ b/Zend/zend_list.h @@ -35,8 +35,8 @@ typedef void (*rsrc_dtor_func_t)(zend_resource *res TSRMLS_DC); typedef struct _zend_rsrc_list_dtors_entry { /* old style destructors */ - void (*list_dtor)(void *); - void (*plist_dtor)(void *); + void (*list_dtor)(zend_resource *); + void (*plist_dtor)(zend_resource *); /* new style destructors */ rsrc_dtor_func_t list_dtor_ex; @@ -50,8 +50,8 @@ typedef struct _zend_rsrc_list_dtors_entry { } zend_rsrc_list_dtors_entry; -#define register_list_destructors(ld, pld) zend_register_list_destructors((void (*)(void *))ld, (void (*)(void *))pld, module_number); -ZEND_API int zend_register_list_destructors(void (*ld)(void *), void (*pld)(void *), int module_number); +#define register_list_destructors(ld, pld) zend_register_list_destructors(ld, pld, module_number); +ZEND_API int zend_register_list_destructors(rsrc_dtor_func_t ld, rsrc_dtor_func_t pld, int module_number); ZEND_API int zend_register_list_destructors_ex(rsrc_dtor_func_t ld, rsrc_dtor_func_t pld, const char *type_name, int module_number); void list_entry_destructor(zval *ptr);

« previous php.cvs (#78063) next »