From: Serhiy Storchaka Date: Mon, 9 Jan 2017 08:09:43 +0000 (+0200) Subject: Issue #29190: Fixed possible errors in comparing strings in the pickle module. X-Git-Tag: v3.6.1rc1~192 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f0f35a6720a3e3aa8298ad5ff1319589968a2215;p=python Issue #29190: Fixed possible errors in comparing strings in the pickle module. --- f0f35a6720a3e3aa8298ad5ff1319589968a2215 diff --cc Modules/_pickle.c index 79113e0a93,0f62b1c019..920b46fc28 --- a/Modules/_pickle.c +++ b/Modules/_pickle.c @@@ -3551,13 -3530,14 +3546,12 @@@ save_reduce(PicklerObject *self, PyObje PyErr_Clear(); } else if (PyUnicode_Check(name)) { - if (self->proto >= 4) { - _Py_IDENTIFIER(__newobj_ex__); - use_newobj_ex = _PyUnicode_EqualToASCIIId( - name, &PyId___newobj_ex__); - } + _Py_IDENTIFIER(__newobj_ex__); - use_newobj_ex = PyUnicode_Compare( - name, _PyUnicode_FromId(&PyId___newobj_ex__)) == 0; ++ use_newobj_ex = _PyUnicode_EqualToASCIIId( ++ name, &PyId___newobj_ex__); if (!use_newobj_ex) { _Py_IDENTIFIER(__newobj__); - use_newobj = PyUnicode_Compare( - name, _PyUnicode_FromId(&PyId___newobj__)) == 0; + use_newobj = _PyUnicode_EqualToASCIIId(name, &PyId___newobj__); } } Py_XDECREF(name);