Kaydet (Commit) b1efa536 authored tarafından Benjamin Peterson's avatar Benjamin Peterson

fix possible setdefault refleak (closes #17328)

üst 29606930
......@@ -12,6 +12,8 @@ What's New in Python 3.3.1?
Core and Builtins
-----------------
- Issue #17328: Fix possible refleak in dict.setdefault.
- Issue #17223: array module: Fix a crasher when converting an array containing
invalid characters (outside range [U+0000; U+10ffff]) to Unicode:
repr(array), str(array) and array.tounicode(). Patch written by Manuel Jacob.
......
......@@ -2230,14 +2230,14 @@ dict_setdefault(register PyDictObject *mp, PyObject *args)
return NULL;
val = *value_addr;
if (val == NULL) {
Py_INCREF(failobj);
Py_INCREF(key);
if (mp->ma_keys->dk_usable <= 0) {
/* Need to resize. */
if (insertion_resize(mp) < 0)
return NULL;
ep = find_empty_slot(mp, key, hash, &value_addr);
}
Py_INCREF(failobj);
Py_INCREF(key);
MAINTAIN_TRACKING(mp, key, failobj);
ep->me_key = key;
ep->me_hash = hash;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment