[Python-checkins] CVS: python/dist/src/Python modsupport.c,2.56,2.57

Fred L. Drake fdrake@users.sourceforge.net
2001年8月03日 20:11:27 -0700


Update of /cvsroot/python/python/dist/src/Python
In directory usw-pr-cvs1:/tmp/cvs-serv18370
Modified Files:
	modsupport.c 
Log Message:
Plug a memory leak in Py_InitModule4(): when PyDict_SetItemString() failed,
the object being inserted was not being DECREFed.
This closes SF bug #444486.
Index: modsupport.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Python/modsupport.c,v
retrieving revision 2.56
retrieving revision 2.57
diff -C2 -d -r2.56 -r2.57
*** modsupport.c	2001年07月31日 13:24:44	2.56
--- modsupport.c	2001年08月04日 03:11:25	2.57
***************
*** 61,72 ****
 		if (v == NULL)
 			return NULL;
! 		if (PyDict_SetItemString(d, ml->ml_name, v) != 0)
 			return NULL;
 		Py_DECREF(v);
 	}
 	if (doc != NULL) {
 		v = PyString_FromString(doc);
! 		if (v == NULL || PyDict_SetItemString(d, "__doc__", v) != 0)
 			return NULL;
 		Py_DECREF(v);
 	}
--- 61,76 ----
 		if (v == NULL)
 			return NULL;
! 		if (PyDict_SetItemString(d, ml->ml_name, v) != 0) {
! 			Py_DECREF(v);
 			return NULL;
+ 		}
 		Py_DECREF(v);
 	}
 	if (doc != NULL) {
 		v = PyString_FromString(doc);
! 		if (v == NULL || PyDict_SetItemString(d, "__doc__", v) != 0) {
! 			Py_DECREF(v);
 			return NULL;
+ 		}
 		Py_DECREF(v);
 	}

AltStyle によって変換されたページ (->オリジナル) /