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.
This commit is contained in:
Gregory P. Smith
2006-06-05 00:40:31 +00:00
parent bf1f7683ab
commit ee6ca70548

View File

@@ -4125,7 +4125,7 @@ DBEnv_log_archive(DBEnvObject* self, PyObject* args)
{
int flags=0;
int err;
char **log_list_start, **log_list;
char **log_list = NULL;
PyObject* list;
PyObject* item = NULL;
@@ -4146,11 +4146,14 @@ DBEnv_log_archive(DBEnvObject* self, PyObject* args)
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) {