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.
This commit is contained in:
Gregory P. Smith 2006-06-05 00:33:35 +00:00
parent 3dd20022ac
commit bad474544c
1 changed files with 7 additions and 4 deletions

View File

@ -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) {