helly Sun Sep 26 17:49:16 2004 EDT Modified files: /php-src/ext/standard var_unserializer.c Log: - Earlier detection of failure (.c now) http://cvs.php.net/diff.php/php-src/ext/standard/var_unserializer.c?r1=1.43&r2=1.44&ty=u Index: php-src/ext/standard/var_unserializer.c diff -u php-src/ext/standard/var_unserializer.c:1.43 php-src/ext/standard/var_unserializer.c:1.44 --- php-src/ext/standard/var_unserializer.c:1.43 Sun Sep 12 08:45:01 2004 +++ php-src/ext/standard/var_unserializer.c Sun Sep 26 17:49:16 2004 @@ -1,4 +1,4 @@ -/* Generated by re2c 0.9.4 on Sun Sep 12 14:43:48 2004 */ +/* Generated by re2c 0.9.4 on Mon Sep 13 21:59:57 2004 */ #line 1 "/usr/src/php-cvs/ext/standard/var_unserializer.re" /* +----------------------------------------------------------------------+ @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: var_unserializer.c,v 1.43 2004/09/12 12:45:01 helly Exp $ */ +/* $Id: var_unserializer.c,v 1.44 2004/09/26 21:49:16 helly Exp $ */ #include "php.h" #include "ext/standard/php_var.h" @@ -187,6 +187,12 @@ return 0; } + if (Z_TYPE_P(key) != IS_LONG && Z_TYPE_P(key) != IS_STRING) { + zval_dtor(key); + FREE_ZVAL(key); + return 0; + } + ALLOC_INIT_ZVAL(data); if (!php_var_unserialize(&data, p, max, var_hash TSRMLS_CC)) { @@ -204,12 +210,6 @@ case IS_STRING: zend_hash_update(ht, Z_STRVAL_P(key), Z_STRLEN_P(key) + 1, &data, sizeof(data), NULL); break; - default: - zval_dtor(key); - FREE_ZVAL(key); - zval_dtor(data); - FREE_ZVAL(data); - return 0; } zval_dtor(key);
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php