diff options
author | Stefan Behnel <stefan_ml@behnel.de> | 2015-09-13 10:34:29 +0200 |
---|---|---|
committer | Stefan Behnel <stefan_ml@behnel.de> | 2015-09-13 10:34:29 +0200 |
commit | 3489c2211f037fd4a40be5d48459223be464f007 (patch) | |
tree | eeb6a2e3a51c397b29fb66f28de214697fe8e1cd | |
parent | c7227ac781764ac643d3d0e64eed0cf1079e5cea (diff) | |
download | cython-3489c2211f037fd4a40be5d48459223be464f007.tar.gz |
explicitly cast digits during PyLong conversion to avoid relying on potentially unsafe C coercion (fixes ticket #865)
-rw-r--r-- | Cython/Utility/__init__.py | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/Cython/Utility/__init__.py b/Cython/Utility/__init__.py index 40fe94b33..73ccc1e2c 100644 --- a/Cython/Utility/__init__.py +++ b/Cython/Utility/__init__.py @@ -6,8 +6,8 @@ def pylong_join(count, digits_ptr='digits', join_type='unsigned long'): (((d[2] << n) | d[1]) << n) | d[0] """ - return ('(' * (count * 2) + "(%s)" % join_type + ' | '.join( - "%s[%d])%s)" % (digits_ptr, _i, " << PyLong_SHIFT" if _i else '') + return ('(' * (count * 2) + ' | '.join( + "(%s)%s[%d])%s)" % (join_type, digits_ptr, _i, " << PyLong_SHIFT" if _i else '') for _i in range(count-1, -1, -1))) |