[Python-checkins] cpython: Issue #18408: Fix PyDict_New() to handle correctly new_keys_object() failure

victor.stinner python-checkins at python.org
Mon Jul 8 22:36:34 CEST 2013


http://hg.python.org/cpython/rev/ba766323b53a
changeset:   84509:ba766323b53a
user:        Victor Stinner <victor.stinner at gmail.com>
date:        Mon Jul 08 22:19:20 2013 +0200
summary:
  Issue #18408: Fix PyDict_New() to handle correctly new_keys_object() failure
(MemoryError).

files:
  Objects/dictobject.c |  6 +++++-
  1 files changed, 5 insertions(+), 1 deletions(-)


diff --git a/Objects/dictobject.c b/Objects/dictobject.c
--- a/Objects/dictobject.c
+++ b/Objects/dictobject.c
@@ -389,6 +389,7 @@
 new_dict(PyDictKeysObject *keys, PyObject **values)
 {
     PyDictObject *mp;
+    assert(keys != NULL);
     if (numfree) {
         mp = free_list[--numfree];
         assert (mp != NULL);
@@ -431,7 +432,10 @@
 PyObject *
 PyDict_New(void)
 {
-    return new_dict(new_keys_object(PyDict_MINSIZE_COMBINED), NULL);
+    PyDictKeysObject *keys = new_keys_object(PyDict_MINSIZE_COMBINED);
+    if (keys == NULL)
+        return NULL;
+    return new_dict(keys, NULL);
 }
 
 /*

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list