[Python-checkins] r47139 - in python/trunk: Misc/NEWS Modules/cPickle.c
neal.norwitz
python-checkins at python.org
Wed Jun 28 08:28:32 CEST 2006
Author: neal.norwitz
Date: Wed Jun 28 08:28:31 2006
New Revision: 47139
Modified:
python/trunk/Misc/NEWS
python/trunk/Modules/cPickle.c
Log:
Fix bug #1512695: cPickle.loads could crash if it was interrupted with
a KeyboardInterrupt since PyTuple_Pack was passed a NULL.
Will backport.
Modified: python/trunk/Misc/NEWS
==============================================================================
--- python/trunk/Misc/NEWS (original)
+++ python/trunk/Misc/NEWS Wed Jun 28 08:28:31 2006
@@ -28,6 +28,12 @@
- The wsgiref package is now installed properly on Unix.
+Extension Modules
+-----------------
+
+- Bug #1512695: cPickle.loads could crash if it was interrupted with
+ a KeyboardInterrupt.
+
Build
-----
Modified: python/trunk/Modules/cPickle.c
==============================================================================
--- python/trunk/Modules/cPickle.c (original)
+++ python/trunk/Modules/cPickle.c Wed Jun 28 08:28:31 2006
@@ -3628,10 +3628,14 @@
err:
{
- PyObject *tp, *v, *tb;
+ PyObject *tp, *v, *tb, *tmp_value;
PyErr_Fetch(&tp, &v, &tb);
- if ((r=PyTuple_Pack(3,v,cls,args))) {
+ tmp_value = v;
+ /* NULL occurs when there was a KeyboardInterrupt */
+ if (tmp_value == NULL)
+ tmp_value = Py_None;
+ if ((r = PyTuple_Pack(3, tmp_value, cls, args))) {
Py_XDECREF(v);
v=r;
}
More information about the Python-checkins
mailing list