scottmac Thu Sep 18 11:52:12 2008 UTC Added files: /php-src/ext/hash/tests mhash_004.phpt
Modified files: /php-src/ext/hash hash.c /php-src/ext/hash/tests mhash_001.phpt Log: mhash algorithm parameter was modified when it was a zval, also update a test. http://cvs.php.net/viewvc.cgi/php-src/ext/hash/hash.c?r1=1.47&r2=1.48&diff_format=u Index: php-src/ext/hash/hash.c diff -u php-src/ext/hash/hash.c:1.47 php-src/ext/hash/hash.c:1.48 --- php-src/ext/hash/hash.c:1.47 Mon Jul 14 10:49:10 2008 +++ php-src/ext/hash/hash.c Thu Sep 18 11:52:12 2008 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: hash.c,v 1.47 2008/07/14 10:49:10 tony2001 Exp $ */ +/* $Id: hash.c,v 1.48 2008/09/18 11:52:12 scottmac Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -797,20 +797,22 @@ Hash data with hash */ PHP_FUNCTION(mhash) { - zval *z_algorithm; - int algorithm; + zval **z_algorithm; + long algorithm; - if (zend_parse_parameters(1 TSRMLS_CC, "z", &z_algorithm) == FAILURE) { + if (zend_parse_parameters(1 TSRMLS_CC, "Z", &z_algorithm) == FAILURE) { return; } - algorithm = Z_LVAL_P(z_algorithm); + SEPARATE_ZVAL(z_algorithm); + convert_to_long_ex(z_algorithm); + algorithm = Z_LVAL_PP(z_algorithm); /* need to conver the first parameter from int to string */ if (algorithm >= 0 && algorithm < MHASH_NUM_ALGOS) { struct mhash_bc_entry algorithm_lookup = mhash_to_hash[algorithm]; if (algorithm_lookup.hash_name) { - ZVAL_STRING(z_algorithm, algorithm_lookup.hash_name, 1); + ZVAL_STRING(*z_algorithm, algorithm_lookup.hash_name, 1); } } http://cvs.php.net/viewvc.cgi/php-src/ext/hash/tests/mhash_001.phpt?r1=1.2&r2=1.3&diff_format=u Index: php-src/ext/hash/tests/mhash_001.phpt diff -u php-src/ext/hash/tests/mhash_001.phpt:1.2 php-src/ext/hash/tests/mhash_001.phpt:1.3 --- php-src/ext/hash/tests/mhash_001.phpt:1.2 Sat Jun 28 15:20:49 2008 +++ php-src/ext/hash/tests/mhash_001.phpt Thu Sep 18 11:52:12 2008 @@ -33,7 +33,7 @@ echo "$hash: "; var_dump($wanted); echo "$hash: "; - var_dump($result); + var_dump(bin2hex($result)); } echo "\n"; } http://cvs.php.net/viewvc.cgi/php-src/ext/hash/tests/mhash_004.phpt?view=markup&rev=1.1 Index: php-src/ext/hash/tests/mhash_004.phpt +++ php-src/ext/hash/tests/mhash_004.phpt --TEST-- mhash() modifying algorithm parameter --INI-- magic_quotes_runtime=0 --SKIPIF-- <?php include "skip_mhash.inc"; ?> --FILE-- <?php $algo = MHASH_MD5; var_dump($algo); var_dump(bin2hex(mhash($algo, "test"))); var_dump($algo); ?> --EXPECT-- int(1) unicode(32) "098f6bcd4621d373cade4e832627b4f6" int(1) -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php