helly Sun Sep 26 17:47:27 2004 EDT Modified files: /php-src/ext/standard var_unserializer.re Log: - Earlier detection of failure http://cvs.php.net/diff.php/php-src/ext/standard/var_unserializer.re?r1=1.32&r2=1.33&ty=u Index: php-src/ext/standard/var_unserializer.re diff -u php-src/ext/standard/var_unserializer.re:1.32 php-src/ext/standard/var_unserializer.re:1.33 --- php-src/ext/standard/var_unserializer.re:1.32 Sun Sep 12 08:43:05 2004 +++ php-src/ext/standard/var_unserializer.re Sun Sep 26 17:47:27 2004 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: var_unserializer.re,v 1.32 2004/09/12 12:43:05 helly Exp $ */ +/* $Id: var_unserializer.re,v 1.33 2004/09/26 21:47:27 helly Exp $ */ #include "php.h" #include "ext/standard/php_var.h" @@ -190,6 +190,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)) { @@ -207,12 +213,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