[Python-checkins] commit of r41506 - in python/branches/release24-maint: Lib/test Modules

andrew.kuchling@python.org andrew.kuchling at python.org
Tue Nov 22 16:39:10 CET 2005


Author: andrew.kuchling
Date: Tue Nov 22 16:39:05 2005
New Revision: 41506

Modified:
   python/branches/release24-maint/Lib/test/test_zlib.py
   python/branches/release24-maint/Modules/zlibmodule.c
Log:
[Patch #1350573] zlib.crc32 doesn't handle 0xffffffff seed.  Add tests and bugfix.  Bug reported by John Schmidt; bugfix by Danny Yoo.

Modified: python/branches/release24-maint/Lib/test/test_zlib.py
==============================================================================
--- python/branches/release24-maint/Lib/test/test_zlib.py	(original)
+++ python/branches/release24-maint/Lib/test/test_zlib.py	Tue Nov 22 16:39:05 2005
@@ -24,6 +24,7 @@
     # checksum test cases
     def test_crc32start(self):
         self.assertEqual(zlib.crc32(""), zlib.crc32("", 0))
+        self.assert_(zlib.crc32("abc", 0xffffffff))
 
     def test_crc32empty(self):
         self.assertEqual(zlib.crc32("", 0), 0)
@@ -32,6 +33,7 @@
 
     def test_adler32start(self):
         self.assertEqual(zlib.adler32(""), zlib.adler32("", 1))
+        self.assert_(zlib.adler32("abc", 0xffffffff))
 
     def test_adler32empty(self):
         self.assertEqual(zlib.adler32("", 0), 0)

Modified: python/branches/release24-maint/Modules/zlibmodule.c
==============================================================================
--- python/branches/release24-maint/Modules/zlibmodule.c	(original)
+++ python/branches/release24-maint/Modules/zlibmodule.c	Tue Nov 22 16:39:05 2005
@@ -778,7 +778,7 @@
     Byte *buf;
     int len;
 
-    if (!PyArg_ParseTuple(args, "s#|l:adler32", &buf, &len, &adler32val))
+    if (!PyArg_ParseTuple(args, "s#|k:adler32", &buf, &len, &adler32val))
 	return NULL;
     adler32val = adler32(adler32val, buf, len);
     return PyInt_FromLong(adler32val);
@@ -796,7 +796,7 @@
     uLong crc32val = crc32(0L, Z_NULL, 0);
     Byte *buf;
     int len;
-    if (!PyArg_ParseTuple(args, "s#|l:crc32", &buf, &len, &crc32val))
+    if (!PyArg_ParseTuple(args, "s#|k:crc32", &buf, &len, &crc32val))
 	return NULL;
     crc32val = crc32(crc32val, buf, len);
     return PyInt_FromLong(crc32val);


More information about the Python-checkins mailing list