summaryrefslogtreecommitdiff
path: root/libvirt-lxc-override.c
diff options
context:
space:
mode:
authorPavel Hrdina <phrdina@redhat.com>2015-09-29 21:59:41 +0200
committerPavel Hrdina <phrdina@redhat.com>2015-10-05 09:35:38 +0200
commit8af1c9cb6c4fd2867c248de192f91bec1fb1def9 (patch)
treee5530db67a763e4594819b1cc0c6bb2bb7494fc0 /libvirt-lxc-override.c
parent62ad6ff3fc3121e39d2b5bdbe3c3d62d6f4486c9 (diff)
downloadlibvirt-python-8af1c9cb6c4fd2867c248de192f91bec1fb1def9.tar.gz
Must check return value for all Py*_New functions
If the function fails, we need to cleanup memory and return NULL. Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Diffstat (limited to 'libvirt-lxc-override.c')
-rw-r--r--libvirt-lxc-override.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/libvirt-lxc-override.c b/libvirt-lxc-override.c
index 20d1cf4..b0550c7 100644
--- a/libvirt-lxc-override.c
+++ b/libvirt-lxc-override.c
@@ -79,7 +79,9 @@ libvirt_lxc_virDomainLxcOpenNamespace(PyObject *self ATTRIBUTE_UNUSED,
if (c_retval < 0)
return VIR_PY_NONE;
- py_retval = PyList_New(0);
+ if ((py_retval = PyList_New(0)) == NULL)
+ goto error;
+
for (i = 0; i < c_retval; i++) {
PyObject *item = NULL;
@@ -91,6 +93,8 @@ libvirt_lxc_virDomainLxcOpenNamespace(PyObject *self ATTRIBUTE_UNUSED,
goto error;
}
}
+
+ cleanup:
VIR_FREE(fdlist);
return py_retval;
@@ -98,8 +102,8 @@ libvirt_lxc_virDomainLxcOpenNamespace(PyObject *self ATTRIBUTE_UNUSED,
for (i = 0; i < c_retval; i++) {
VIR_FORCE_CLOSE(fdlist[i]);
}
- VIR_FREE(fdlist);
- return NULL;
+ Py_CLEAR(py_retval);
+ goto cleanup;
}
/************************************************************************
* *