From 9992b49cdeff97c3624b38c96f7a9cc9042eaa40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=2E=C3=87a=C4=9Flar=20Onur?= Date: Thu, 14 Nov 2013 23:56:04 -0500 Subject: [PATCH] fix memory leaks reported by cppcheck in src/lxc/lxc_monitor.c. Since this is a cli tool it doesn't really matter but might silence some warnings for debugging MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: S.Çağlar Onur Signed-off-by: Serge Hallyn --- src/lxc/lxc_monitor.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/lxc/lxc_monitor.c b/src/lxc/lxc_monitor.c index 0c277231f..4f5630882 100644 --- a/src/lxc/lxc_monitor.c +++ b/src/lxc/lxc_monitor.c @@ -89,8 +89,10 @@ int main(int argc, char *argv[]) if (regcomp(&preg, regexp, REG_NOSUB|REG_EXTENDED)) { ERROR("failed to compile the regex '%s'", my_args.name); + free(regexp); return -1; } + free(regexp); if (my_args.lxcpath_cnt > FD_SETSIZE) { ERROR("too many paths requested, only the first %d will be monitored", FD_SETSIZE); @@ -104,8 +106,10 @@ int main(int argc, char *argv[]) lxc_monitord_spawn(my_args.lxcpath[i]); fd = lxc_monitor_open(my_args.lxcpath[i]); - if (fd < 0) + if (fd < 0) { + regfree(&preg); return -1; + } FD_SET(fd, &rfds); if (fd > nfds) nfds = fd; @@ -118,8 +122,10 @@ int main(int argc, char *argv[]) for (;;) { memcpy(&rfds, &rfds_save, sizeof(rfds)); - if (lxc_monitor_read_fdset(&rfds, nfds, &msg, -1) < 0) + if (lxc_monitor_read_fdset(&rfds, nfds, &msg, -1) < 0) { + regfree(&preg); return -1; + } msg.name[sizeof(msg.name)-1] = '\0'; if (regexec(&preg, msg.name, 0, NULL, 0))