mirror of
https://github.com/python/cpython.git
synced 2025-08-01 07:33:08 +00:00
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:
parent
3dd20022ac
commit
bad474544c
1 changed files with 7 additions and 4 deletions
|
@ -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) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue