Description: Possible fix for OverflowError in _search_key_255
Origin: commit, revision id: gzlist@googlemail.com-20181117005719-rbj0qvyqhj3jldll
Author: Martin <gzlist@googlemail.com>
Last-Update: 2018-11-17
Applied-Upstream: no
X-Bzr-Revision-Id: gzlist@googlemail.com-20181117005719-rbj0qvyqhj3jldll

=== modified file 'breezy/bzr/_chk_map_pyx.pyx'
--- old/breezy/bzr/_chk_map_pyx.pyx	2018-07-12 01:43:49 +0000
+++ new/breezy/bzr/_chk_map_pyx.pyx	2018-11-17 00:57:19 +0000
@@ -41,7 +41,7 @@
     PyDict_SetItem,
     )
 from cpython.int cimport (
-    PyInt_AS_LONG,
+    PyInt_AsUnsignedLongMask,
     )
 from cpython.object cimport (
     PyObject,
@@ -102,7 +102,7 @@
         if i > 0:
             c_out[0] = c'\x00'
             c_out = c_out + 1
-        crc_val = PyInt_AS_LONG(crc32(key[i])) & <unsigned long>0xFFFFFFFF
+        crc_val = PyInt_AsUnsignedLongMask(crc32(key[i]))
         # Hex(val) order
         sprintf(c_out, '%08lX', crc_val)
         c_out = c_out + 8
@@ -127,7 +127,7 @@
         if i > 0:
             c_out[0] = c'\x00'
             c_out = c_out + 1
-        crc_val = PyInt_AS_LONG(crc32(key[i]))
+        crc_val = PyInt_AsUnsignedLongMask(crc32(key[i]))
         # MSB order
         c_out[0] = (crc_val >> 24) & 0xFF
         c_out[1] = (crc_val >> 16) & 0xFF

