diff Objects/typeobject.c @ 37068:e43d5d2ca50a 2.4

Backport: Fix missing NULL checks after PyTuple_New, PyList_New, PyDict_New
author Georg Brandl <georg@python.org>
date Fri, 17 Mar 2006 19:04:15 +0000
parents 9523a9415e18
children 3cdde45a468d
line wrap: on
line diff
--- a/Objects/typeobject.c	Thu Mar 16 18:56:35 2006 +0000
+++ b/Objects/typeobject.c	Fri Mar 17 19:04:15 2006 +0000
@@ -1105,14 +1105,17 @@
 	char buf[1000];
 	PyObject *k, *v;
 	PyObject *set = PyDict_New();
+	if (!set) return;
 
 	to_merge_size = PyList_GET_SIZE(to_merge);
 	for (i = 0; i < to_merge_size; i++) {
 		PyObject *L = PyList_GET_ITEM(to_merge, i);
 		if (remain[i] < PyList_GET_SIZE(L)) {
 			PyObject *c = PyList_GET_ITEM(L, remain[i]);
-			if (PyDict_SetItem(set, c, Py_None) < 0)
+			if (PyDict_SetItem(set, c, Py_None) < 0) {
+				Py_DECREF(set);
 				return;
+			}
 		}
 	}
 	n = PyDict_Size(set);