Bug #11474: list delete api always tries to delete from regular list instead of given list

From: Date: Wed, 13 Jun 2001 20:50:28 +0000
Subject: Bug #11474: list delete api always tries to delete from regular list instead of given list
Groups: php.dev 
Request: Send a blank email to php-dev+get-57176@lists.php.net to get a copy of this message
From: kpatel@mahinetworks.com Operating system: Linux PHP version: 4.0.4 PHP Bug Type: Scripting Engine problem Bug description: list delete api always tries to delete from regular list instead of given list static inline int zend_list_do_delete(HashTable *list,int id) { zend_rsrc_list_entry *le; ELS_FETCH(); if (zend_hash_index_find(&EG(regular_list), id, (void **) &le)==SUCCESS) { /* printf("del(%d): %d->%d\n", id, le->refcount, le->refcount-1); */ if (--le->refcount<=0) { return zend_hash_index_del(&EG(regular_list), id); } else { return SUCCESS; } } else { return FAILURE; } } In the above function from zend_list.c, as you can see that it is passed a HashTable *list parameter to delete the entry from, but when it calls the hash find and delete functions, it DOES NOT use the parameters HashTable * list which is passed in. Instead it passes &EG(regular_list), so even if call zend_plist_delete(...) to try to delete something from the persistent list, it'll try to delete it from the regular list. NOTE: I checked the 4.0.5 release and it has the same problem. -- Edit Bug report at: http://bugs.php.net/?id=11474&edit=1

« previous php.dev (#57176) next »