[lxc-devel] [lxc/master] Fixes for analysed code
lunixoid on Github
lxc-bot at linuxcontainers.org
Sat Oct 28 21:50:04 UTC 2017
A non-text attachment was scrubbed...
Name: not available
Type: text/x-mailbox
Size: 1023 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20171028/a6dd2ed3/attachment.bin>
-------------- next part --------------
From 62c11afa41bd8a9aaa3d0c28cf203daf9a843467 Mon Sep 17 00:00:00 2001
From: Roman Kalashnikov <lunix0x at gmail.com>
Date: Sun, 29 Oct 2017 00:35:47 +0300
Subject: [PATCH 1/2] Fixed conditions
---
src/lxc/cgroups/cgfs.c | 5 ++---
src/lxc/start.c | 6 ++----
2 files changed, 4 insertions(+), 7 deletions(-)
diff --git a/src/lxc/cgroups/cgfs.c b/src/lxc/cgroups/cgfs.c
index bcbd66134..3cabc7a67 100644
--- a/src/lxc/cgroups/cgfs.c
+++ b/src/lxc/cgroups/cgfs.c
@@ -656,7 +656,7 @@ static struct cgroup_hierarchy *lxc_cgroup_find_hierarchy(struct cgroup_meta_dat
struct cgroup_hierarchy *h = meta_data->hierarchies[i];
if (!h)
continue;
- if (h && lxc_string_in_array(subsystem, (const char **)h->subsystems))
+ if (lxc_string_in_array(subsystem, (const char **)h->subsystems))
return h;
}
return NULL;
@@ -1769,8 +1769,7 @@ lxc_cgroup_process_info_getx(const char *proc_pid_cgroup_str,
out_error:
saved_errno = errno;
- if (proc_pid_cgroup)
- fclose(proc_pid_cgroup);
+ fclose(proc_pid_cgroup);
lxc_cgroup_process_info_free(result);
lxc_cgroup_process_info_free(entry);
free(line);
diff --git a/src/lxc/start.c b/src/lxc/start.c
index 7748dbf61..aa578caca 100644
--- a/src/lxc/start.c
+++ b/src/lxc/start.c
@@ -1001,10 +1001,8 @@ static int do_start(void *data)
goto out_warn_father;
}
- if (devnull_fd >= 0) {
- close(devnull_fd);
- devnull_fd = -1;
- }
+ close(devnull_fd);
+ devnull_fd = -1;
setsid();
From 96f0448d9260ffb9aee203fa59417d34c53a9c6e Mon Sep 17 00:00:00 2001
From: Roman Kalashnikov <lunix0x at gmail.com>
Date: Sun, 29 Oct 2017 00:47:10 +0300
Subject: [PATCH 2/2] Fixed possible memory leak
---
src/lxc/lxccontainer.c | 9 ++++++---
src/lxc/storage/rsync.c | 4 +++-
2 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/src/lxc/lxccontainer.c b/src/lxc/lxccontainer.c
index efb1bf7ae..0ad0998d4 100644
--- a/src/lxc/lxccontainer.c
+++ b/src/lxc/lxccontainer.c
@@ -4404,21 +4404,24 @@ static int do_lxcapi_migrate(struct lxc_container *c, unsigned int cmd,
case MIGRATE_PRE_DUMP:
if (!do_lxcapi_is_running(c)) {
ERROR("container is not running");
- return false;
+ ret = false;
+ break;
}
ret = !__criu_pre_dump(c, valid_opts);
break;
case MIGRATE_DUMP:
if (!do_lxcapi_is_running(c)) {
ERROR("container is not running");
- return false;
+ ret = false;
+ break;
}
ret = !__criu_dump(c, valid_opts);
break;
case MIGRATE_RESTORE:
if (do_lxcapi_is_running(c)) {
ERROR("container is already running");
- return false;
+ ret = false;
+ break;
}
ret = !__criu_restore(c, valid_opts);
break;
diff --git a/src/lxc/storage/rsync.c b/src/lxc/storage/rsync.c
index 55c9504e7..6abf745a9 100644
--- a/src/lxc/storage/rsync.c
+++ b/src/lxc/storage/rsync.c
@@ -73,8 +73,10 @@ int lxc_rsync_exec(const char *src, const char *dest)
return -1;
ret = snprintf(s, l, "%s", src);
- if (ret < 0 || (size_t)ret >= l)
+ if (ret < 0 || (size_t)ret >= l) {
+ free(s);
return -1;
+ }
s[l - 2] = '/';
s[l - 1] = '\0';
More information about the lxc-devel
mailing list