Since lxc_execute() is available through the library and is exposed via the API we cannot be sure the caller will immediately exit, so we should take care to free the allocated memory.
Signed-off-by: Dwight Engen <dwight.en...@oracle.com> --- src/lxc/execute.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/lxc/execute.c b/src/lxc/execute.c index d93e8e1..9bf33ca 100644 --- a/src/lxc/execute.c +++ b/src/lxc/execute.c @@ -55,7 +55,7 @@ static char *choose_init(void) ret = snprintf(retv, PATH_MAX, LXCINITDIR "/lxc/lxc-init"); if (ret < 0 || ret >= PATH_MAX) { ERROR("pathname too long"); - return NULL; + goto out1; } ret = stat(retv, &mystat); @@ -65,7 +65,7 @@ static char *choose_init(void) ret = snprintf(retv, PATH_MAX, "/usr/lib/lxc/lxc-init"); if (ret < 0 || ret >= PATH_MAX) { ERROR("pathname too long"); - return NULL; + goto out1; } ret = stat(retv, &mystat); if (ret == 0) @@ -73,11 +73,13 @@ static char *choose_init(void) ret = snprintf(retv, PATH_MAX, "/sbin/lxc-init"); if (ret < 0 || ret >= PATH_MAX) { ERROR("pathname too long"); - return NULL; + goto out1; } ret = stat(retv, &mystat); if (ret == 0) return retv; +out1: + free(retv); return NULL; } -- 1.8.1.4 ------------------------------------------------------------------------------ Get 100% visibility into Java/.NET code with AppDynamics Lite It's a free troubleshooting tool designed for production Get down to code-level detail for bottlenecks, with <2% overhead. Download for free and get started troubleshooting in minutes. http://p.sf.net/sfu/appdyn_d2d_ap2 _______________________________________________ Lxc-devel mailing list Lxc-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/lxc-devel