tony2001                Mon Aug 18 14:33:01 2008 UTC

  Modified files:              (Branch: PHP_5_2)
    /php-src    NEWS 
    /php-src/ext/hash   hash_crc32.c 
    /php-src/ext/hash/tests     crc32.phpt 
  Log:
  MFH: fix bug #45028 (CRC32 output endianness is different between crc32() and 
hash())
  
  
http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.1200&r2=1.2027.2.547.2.1201&diff_format=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2027.2.547.2.1200 php-src/NEWS:1.2027.2.547.2.1201
--- php-src/NEWS:1.2027.2.547.2.1200    Mon Aug 18 04:09:37 2008
+++ php-src/NEWS        Mon Aug 18 14:32:58 2008
@@ -59,6 +59,8 @@
   (Dmitry)
 - Fixed bug #45139 (ReflectionProperty returns incorrect declaring class).
   (Felipe)
+- Fixed bug #45028 (CRC32 output endianness is different between crc32() 
+  and hash()). (Tony)
 - Fixed bug #45004 (pg_insert() does not accept 4 digit timezone format).
   (Ilia)
 - Fixed bug #44891 Memory leak using registerPHPFunctions and XSLT Variable 
http://cvs.php.net/viewvc.cgi/php-src/ext/hash/hash_crc32.c?r1=1.2.2.3.2.3&r2=1.2.2.3.2.4&diff_format=u
Index: php-src/ext/hash/hash_crc32.c
diff -u php-src/ext/hash/hash_crc32.c:1.2.2.3.2.3 
php-src/ext/hash/hash_crc32.c:1.2.2.3.2.4
--- php-src/ext/hash/hash_crc32.c:1.2.2.3.2.3   Mon Dec 31 07:20:07 2007
+++ php-src/ext/hash/hash_crc32.c       Mon Aug 18 14:32:59 2008
@@ -17,7 +17,7 @@
   +----------------------------------------------------------------------+
 */
 
-/* $Id: hash_crc32.c,v 1.2.2.3.2.3 2007/12/31 07:20:07 sebastian Exp $ */
+/* $Id: hash_crc32.c,v 1.2.2.3.2.4 2008/08/18 14:32:59 tony2001 Exp $ */
 
 #include "php_hash.h"
 #include "php_hash_crc32.h"
@@ -56,6 +56,16 @@
        context->state = 0;
 }
 
+PHP_HASH_API void PHP_CRC32BFinal(unsigned char digest[4], PHP_CRC32_CTX 
*context)
+{
+       context->state=~context->state;
+       digest[0] = (unsigned char) ((context->state >> 24) & 0xff);
+       digest[1] = (unsigned char) ((context->state >> 16) & 0xff);
+       digest[2] = (unsigned char) ((context->state >> 8) & 0xff);
+       digest[3] = (unsigned char) (context->state & 0xff);
+       context->state = 0;
+}
+
 const php_hash_ops php_hash_crc32_ops = {
        (php_hash_init_func_t) PHP_CRC32Init,
        (php_hash_update_func_t) PHP_CRC32Update,
@@ -68,7 +78,7 @@
 const php_hash_ops php_hash_crc32b_ops = {
        (php_hash_init_func_t) PHP_CRC32Init,
        (php_hash_update_func_t) PHP_CRC32BUpdate,
-       (php_hash_final_func_t) PHP_CRC32Final,
+       (php_hash_final_func_t) PHP_CRC32BFinal,
        4, /* what to say here? */
        4,
        sizeof(PHP_CRC32_CTX)
http://cvs.php.net/viewvc.cgi/php-src/ext/hash/tests/crc32.phpt?r1=1.1.2.2&r2=1.1.2.2.2.1&diff_format=u
Index: php-src/ext/hash/tests/crc32.phpt
diff -u php-src/ext/hash/tests/crc32.phpt:1.1.2.2 
php-src/ext/hash/tests/crc32.phpt:1.1.2.2.2.1
--- php-src/ext/hash/tests/crc32.phpt:1.1.2.2   Sat Dec  3 10:18:38 2005
+++ php-src/ext/hash/tests/crc32.phpt   Mon Aug 18 14:33:00 2008
@@ -28,9 +28,9 @@
 882174a0
 96790816
 00000000
-43beb7e8
-c2412435
-7f9d1520
-bd50274c
-d2e6c21f
-724aa97c
+e8b7be43
+352441c2
+20159d7f
+4c2750bd
+1fc2e6d2
+7ca94a72



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to