From 9c6694b7073a6ebfd1da4950e0c8db4b91530202 Mon Sep 17 00:00:00 2001 From: Christian Seiler Date: Mon, 19 Aug 2013 00:52:42 +0200 Subject: [PATCH] python/attach: Fix minor memory leaks Signed-off-by: Christian Seiler Signed-off-by: Serge Hallyn --- 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 7b103ffe3..4899339c6 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; -- 2.47.2