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

Reply via email to