Author: Ronan Lamy <[email protected]>
Branch: py3.5
Changeset: r88459:d897004ed662
Date: 2016-11-18 02:26 +0000
http://bitbucket.org/pypy/pypy/changeset/d897004ed662/

Log:    Ensure that binascii.crc_hqx() only returns values below 0xffff
        (cpython issue #23728)

diff --git a/pypy/module/binascii/interp_hqx.py 
b/pypy/module/binascii/interp_hqx.py
--- a/pypy/module/binascii/interp_hqx.py
+++ b/pypy/module/binascii/interp_hqx.py
@@ -240,7 +240,7 @@
 @unwrap_spec(data='bufferstr', oldcrc=int)
 def crc_hqx(space, data, oldcrc):
     "Compute hqx CRC incrementally."
-    crc = oldcrc
+    crc = oldcrc & 0xffff
     for c in data:
         crc = ((crc << 8) & 0xff00) ^ crctab_hqx[((crc >> 8) & 0xff) ^ ord(c)]
     return space.wrap(crc)
diff --git a/pypy/module/binascii/test/test_binascii.py 
b/pypy/module/binascii/test/test_binascii.py
--- a/pypy/module/binascii/test/test_binascii.py
+++ b/pypy/module/binascii/test/test_binascii.py
@@ -314,6 +314,7 @@
     def test_crc_hqx(self):
         for input, initial, expected in [
             (b"", 0, 0),
+            (b'', 0x12345, 0x2345),
             (b"", 123, 123),
             (b"hello", 321, 28955),
             (b"world", 65535, 12911),
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to