Commit bad47454 authored by Gregory P. Smith's avatar Gregory P. Smith

fix a bug in the previous commit. don't leak empty list on error return and

fix the additional rare (out of memory only) bug that it was supposed to fix
of not freeing log_list when the python allocator failed.
parent 3dd20022
......@@ -4378,10 +4378,6 @@ DBEnv_log_archive(DBEnvObject* self, PyObject* args)
if (!PyArg_ParseTuple(args, "|i:log_archive", &flags))
return NULL;
list = PyList_New(0);
if (list == NULL)
return NULL;
CHECK_ENV_NOT_CLOSED(self);
MYDB_BEGIN_ALLOW_THREADS;
#if (DBVER >= 40)
......@@ -4394,6 +4390,13 @@ DBEnv_log_archive(DBEnvObject* self, PyObject* args)
MYDB_END_ALLOW_THREADS;
RETURN_IF_ERR();
list = PyList_New(0);
if (list == NULL) {
if (log_list)
free(log_list);
return NULL;
}
if (log_list) {
char **log_list_start;
for (log_list_start = log_list; *log_list != NULL; ++log_list) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment