]> granicus.if.org Git - python/commitdiff
[Patch #1350573] zlib.crc32 doesn't handle 0xffffffff seed. Add tests and bugfix...
authorAndrew M. Kuchling <amk@amk.ca>
Tue, 22 Nov 2005 15:32:28 +0000 (15:32 +0000)
committerAndrew M. Kuchling <amk@amk.ca>
Tue, 22 Nov 2005 15:32:28 +0000 (15:32 +0000)
Lib/test/test_zlib.py
Modules/zlibmodule.c

index e91184e1b7180304053593e3a9f00821c05cf68d..7634680ecfe838d12d9ee045d8f2fc3ef4dfd92d 100644 (file)
@@ -24,6 +24,7 @@ class ChecksumTestCase(unittest.TestCase):
     # 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 @@ class ChecksumTestCase(unittest.TestCase):
 
     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)
index c3238a0685017d2e04326c9f3d8ae4f79f071d80..a598ae31c31fe6e75feda2e4a23dd6961e6c9106 100644 (file)
@@ -778,7 +778,7 @@ PyZlib_adler32(PyObject *self, PyObject *args)
     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 @@ PyZlib_crc32(PyObject *self, PyObject *args)
     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);