[lxc-devel] [PATCH 3/5] python/attach: Fix minor memory leaks
Christian Seiler
christian at iwakd.de
Sun Aug 18 22:52:42 UTC 2013
Signed-off-by: Christian Seiler <christian at iwakd.de>
---
src/python-lxc/lxc.c | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
diff --git a/src/python-lxc/lxc.c b/src/python-lxc/lxc.c
index ddf3fa0..f4de169 100644
--- a/src/python-lxc/lxc.c
+++ b/src/python-lxc/lxc.c
@@ -759,8 +759,10 @@ static lxc_attach_options_t *lxc_attach_parse_options(PyObject *kwds)
/* immediately get rid of the dummy tuple */
Py_DECREF(dummy);
- if (!parse_result)
+ if (!parse_result) {
+ lxc_attach_free_options(options);
return NULL;
+ }
/* duplicate the string, so we don't depend on some random Python object */
if (initial_cwd_obj != NULL) {
@@ -779,18 +781,24 @@ static lxc_attach_options_t *lxc_attach_parse_options(PyObject *kwds)
options->extra_keep_env = convert_tuple_to_char_pointer_array(extra_keep_env_obj);
if (stdin_obj) {
options->stdin_fd = PyObject_AsFileDescriptor(stdin_obj);
- if (options->stdin_fd < 0)
+ if (options->stdin_fd < 0) {
+ lxc_attach_free_options(options);
return NULL;
+ }
}
if (stdout_obj) {
options->stdout_fd = PyObject_AsFileDescriptor(stdout_obj);
- if (options->stdout_fd < 0)
+ if (options->stdout_fd < 0) {
+ lxc_attach_free_options(options);
return NULL;
+ }
}
if (stderr_obj) {
options->stderr_fd = PyObject_AsFileDescriptor(stderr_obj);
- if (options->stderr_fd < 0)
+ if (options->stderr_fd < 0) {
+ lxc_attach_free_options(options);
return NULL;
+ }
}
return options;
--
1.7.10.4
More information about the lxc-devel
mailing list