[Python-checkins] r46659 - python/branches/release24-maint/Modules/_bsddb.c

gregory.p.smith python-checkins at python.org
Mon Jun 5 02:40:39 CEST 2006


Author: gregory.p.smith
Date: Mon Jun 5 02:40:31 2006
New Revision: 46659
Modified:
 python/branches/release24-maint/Modules/_bsddb.c
Log:
fix potential use of uninitialized char ** to construct a list if log_archive
is called with the (unsupported and unexported in this version) flag DB_ARCH_REMOVE.
also fix a log_list memory leak on error return in the event that python can't create
a new list object.
Modified: python/branches/release24-maint/Modules/_bsddb.c
==============================================================================
--- python/branches/release24-maint/Modules/_bsddb.c	(original)
+++ python/branches/release24-maint/Modules/_bsddb.c	Mon Jun 5 02:40:31 2006
@@ -4125,7 +4125,7 @@
 {
 int flags=0;
 int err;
- char **log_list_start, **log_list;
+ char **log_list = NULL;
 PyObject* list;
 PyObject* item = NULL;
 
@@ -4146,11 +4146,14 @@
 
 list = PyList_New(0);
 if (list == NULL) {
+ if (log_list)
+ free(log_list);
 PyErr_SetString(PyExc_MemoryError, "PyList_New failed");
 return NULL;
 }
 
 if (log_list) {
+ char **log_list_start;
 for (log_list_start = log_list; *log_list != NULL; ++log_list) {
 item = PyString_FromString (*log_list);
 if (item == NULL) {


More information about the Python-checkins mailing list

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