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