cvs: /php4/ext/sybase_ct php_sybase_ct.c /php4/ext/sybase sybase.c
| From: | Thies C. Arntzen | Date: | Sat, 15 Jan 2000 13:39:16 +0000 |
| Subject: | cvs: /php4/ext/sybase_ct php_sybase_ct.c /php4/ext/sybase sybase.c | ||
| Groups: | php.version4 | ||
| Request: | Send a blank email to php-version4+get-9145@lists.php.net to get a copy of this message | ||
thies Sat Jan 15 05:39:16 2000 EDT
Modified files:
/php4/ext/sybase_ct php_sybase_ct.c
/php4/ext/sybase sybase.c
Log:
just add a remark. zend_hash_apply can & will cause problems here unless
Index: php4/ext/sybase_ct/php_sybase_ct.c
diff -u php4/ext/sybase_ct/php_sybase_ct.c:1.13 php4/ext/sybase_ct/php_sybase_ct.c:1.14
--- php4/ext/sybase_ct/php_sybase_ct.c:1.13 Fri Dec 31 17:31:54 1999
+++ php4/ext/sybase_ct/php_sybase_ct.c Sat Jan 15 05:39:15 2000
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_sybase_ct.c,v 1.13 2000/01/01 01:31:54 sas Exp $ */
+/* $Id: php_sybase_ct.c,v 1.14 2000/01/15 13:39:15 thies Exp $ */
#include "php.h"
@@ -127,6 +127,12 @@
CS_INT con_status;
sybase_ptr->valid = 0;
+
+ /*
+ this can cause crashes in the current model.
+ if the resource gets destroyed via destroy_resource_list() resource_list
+ will *not* be in a consistent state. thies@digicol.de
+ */
zend_hash_apply(resource_list,(int (*)(void *))_clean_invalid_results);
/* Non-persistent connections will always be connected or we wouldn't
Index: php4/ext/sybase/sybase.c
diff -u php4/ext/sybase/sybase.c:1.20 php4/ext/sybase/sybase.c:1.21
--- php4/ext/sybase/sybase.c:1.20 Fri Dec 31 17:31:53 1999
+++ php4/ext/sybase/sybase.c Sat Jan 15 05:39:15 2000
@@ -20,7 +20,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: sybase.c,v 1.20 2000/01/01 01:31:53 sas Exp $ */
+/* $Id: sybase.c,v 1.21 2000/01/15 13:39:15 thies Exp $ */
#include "php.h"
@@ -160,6 +160,13 @@
static void _close_sybase_link(sybase_link *sybase_ptr)
{
sybase_ptr->valid = 0;
+
+ /*
+ this can cause crashes in the current model.
+ if the resource gets destroyed via destroy_resource_list() resource_list
+ will *not* be in a consistent state. thies@digicol.de
+ */
+
zend_hash_apply(resource_list,(int (*)(void *))_clean_invalid_results);
dbclose(sybase_ptr->link);
dbloginfree(sybase_ptr->login);