8000 python: Fix segmentation fault when `default` returns it's argument. · urso/msgpack-python@3aaf5f5 · GitHub
[go: up one dir, main page]

Skip to content

Commit 3aaf5f5

Browse files
committed
python: Fix segmentation fault when default returns it's argument.
1 parent 9e8261c commit 3aaf5f5

File tree

2 files changed

+3
-3
lines changed

2 files changed

+3
-3
lines changed

msgpack/_msgpack.pyx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,9 +118,9 @@ cdef class Packer(object):
118118
for v in o:
119119
ret = self._pack(v, nest_limit-1)
120120
if ret != 0: break
121-
elif self._default is not None:
121+
elif self._default:
122122
o = self._default(o)
123-
ret = self._pack(o, nest_limit)
123+
ret = self._pack(o, nest_limit-1)
124124
else:
125125
raise TypeError("can't serialize %r" % (o,))
126126
return ret

test/test_obj.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ def test_decode_hook():
2626
unpacked = unpacks(packed, object_hook=_decode_complex)
2727
eq_(unpacked[1], 1+2j)
2828

29-
@raises(TypeError)
29+
@raises(ValueError)
3030
def test_bad_hook():
3131
packed = packs([3, 1+2j], default=lambda o: o)
3232
unpacked = unpacks(packed)

0 commit comments

Comments
 (0)
0