Re: [PATCH] Fix for bug #19566
| From: | (Marcus Börger) | Date: | Fri, 08 Nov 2002 09:34:25 +0000 |
| Subject: | Re: [PATCH] Fix for bug #19566 | ||
| References: | 1 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-90640@lists.php.net to get a copy of this message | ||
I am not sure if va_start can be called twice in a row (rekursive).
Manual does not say anything about that.
How about:
cvs -z3 -q diff zend_hash.c (in directory S:\php4-HEAD\Zend)
Index: zend_hash.c
===================================================================
RCS file: /repository/ZendEngine2/zend_hash.c,v
retrieving revision 1.93
diff -u -r1.93 zend_hash.c
--- zend_hash.c 5 Nov 2002 18:22:02 -0000 1.93+++ zend_hash.c 8 Nov 2002 09:32:48 -0000 @@ -722,9 +722,13 @@
HASH_PROTECT_RECURSION(ht);
- va_start(args, num_args);
p = ht->pListHead;
+ if (p == NULL) {
+ va_start(args, num_args);
+ va_end(args);
+ }
while (p != NULL) {
+ va_start(args, num_args);
hash_key.arKey = p->arKey;
hash_key.nKeyLength = p->nKeyLength;
hash_key.h = p->h;
@@ -733,8 +737,8 @@
} else {
p = p->pListNext;
}
+ va_end(args);
}
- va_end(args);
HASH_UNPROTECT_RECURSION(ht);} marcus At 09:52 08.11.2002, Moriyoshi Koizumi wrote:
Hi, The attached patch is a probable fix for bug #19566. I guess the bug is that va_list is not properly initialized before each callback function call. I've tested it in PPC linux, and it works fine. Regards, Moriyoshi -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, visit: http://www.php.net/unsub.php