summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Dickinson <mdickinson@enthought.com>2011-03-27 15:25:40 (GMT)
committerMark Dickinson <mdickinson@enthought.com>2011-03-27 15:25:40 (GMT)
commit92b60d55d9115af9661618d7d24da929f181be68 (patch)
tree16326265d34fcff48260bdb26cf403d97f0f6951
parentccd2283c6fa83a7759a84605810e28713e9f1755 (diff)
downloadcpython-92b60d55d9115af9661618d7d24da929f181be68.zip
cpython-92b60d55d9115af9661618d7d24da929f181be68.tar.gz
cpython-92b60d55d9115af9661618d7d24da929f181be68.tar.bz2
Issue #9696: Fix exception incorrectly raised by xdrlib.Packer.pack_int when trying to pack a negative (in-range) integer.
-rw-r--r--Lib/test/test_xdrlib.py2
-rw-r--r--Lib/xdrlib.py4
-rw-r--r--Misc/ACKS1
-rw-r--r--Misc/NEWS3
4 files changed, 9 insertions, 1 deletions
diff --git a/Lib/test/test_xdrlib.py b/Lib/test/test_xdrlib.py
index 073448c..6004c9f 100644
--- a/Lib/test/test_xdrlib.py
+++ b/Lib/test/test_xdrlib.py
@@ -12,6 +12,7 @@ class XDRTest(unittest.TestCase):
a = [b'what', b'is', b'hapnin', b'doctor']
p.pack_int(42)
+ p.pack_int(-17)
p.pack_uint(9)
p.pack_bool(True)
p.pack_bool(False)
@@ -29,6 +30,7 @@ class XDRTest(unittest.TestCase):
self.assertEqual(up.get_position(), 0)
self.assertEqual(up.unpack_int(), 42)
+ self.assertEqual(up.unpack_int(), -17)
self.assertEqual(up.unpack_uint(), 9)
self.assertTrue(up.unpack_bool() is True)
diff --git a/Lib/xdrlib.py b/Lib/xdrlib.py
index b293e06..4e48677 100644
--- a/Lib/xdrlib.py
+++ b/Lib/xdrlib.py
@@ -50,7 +50,9 @@ class Packer:
def pack_uint(self, x):
self.__buf.write(struct.pack('>L', x))
- pack_int = pack_uint
+ def pack_int(self, x):
+ self.__buf.write(struct.pack('>l', x))
+
pack_enum = pack_int
def pack_bool(self, x):
diff --git a/Misc/ACKS b/Misc/ACKS
index 17091eb..7a0982b 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -303,6 +303,7 @@ Eddy De Greef
Duncan Grisby
Fabian Groffen
Dag Gruneau
+Filip Gruszczyński
Michael Guravage
Lars Gustäbel
Thomas Güttler
diff --git a/Misc/NEWS b/Misc/NEWS
index 72da1ac..0b45ff5 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -44,6 +44,9 @@ Core and Builtins
Library
-------
+- Issue #9696: Fix exception incorrectly raised by xdrlib.Packer.pack_int when
+ trying to pack a negative (in-range) integer.
+
- Issue #11675: multiprocessing.[Raw]Array objects created from an integer size
are now zeroed on creation. This matches the behaviour specified by the
documentation.