changeset: 84845:b33f81974516 parent: 84843:f7a0a4e0ada4 parent: 84844:dbdd07657e23 user: Christian Heimes date: Fri Jul 26 22:45:47 2013 +0200 files: Misc/NEWS Modules/_pickle.c description: Issue #18559: Fix NULL pointer dereference error in _pickle module diff -r f7a0a4e0ada4 -r b33f81974516 Misc/NEWS --- a/Misc/NEWS Fri Jul 26 22:23:33 2013 +0200 +++ b/Misc/NEWS Fri Jul 26 22:45:47 2013 +0200 @@ -166,6 +166,8 @@ Library ------- +- Issue #18559: Fix NULL pointer dereference error in _pickle module + - Issue #18556: Check the return type of PyUnicode_AsWideChar() in ctype's U_set(). diff -r f7a0a4e0ada4 -r b33f81974516 Modules/_pickle.c --- a/Modules/_pickle.c Fri Jul 26 22:23:33 2013 +0200 +++ b/Modules/_pickle.c Fri Jul 26 22:45:47 2013 +0200 @@ -4836,9 +4836,10 @@ value = _Unpickler_MemoGet(self, idx); if (value == NULL) { PyObject *key = PyLong_FromSsize_t(idx); - if (!PyErr_Occurred()) + if (key != NULL) { PyErr_SetObject(PyExc_KeyError, key); - Py_DECREF(key); + Py_DECREF(key); + } return -1; } @@ -4861,9 +4862,10 @@ value = _Unpickler_MemoGet(self, idx); if (value == NULL) { PyObject *key = PyLong_FromSsize_t(idx); - if (!PyErr_Occurred()) + if (key != NULL) { PyErr_SetObject(PyExc_KeyError, key); - Py_DECREF(key); + Py_DECREF(key); + } return -1; }