[lxc-devel] [lxc/master] confile: pointer 'retv' is dereferenced.
2xsec on Github
lxc-bot at linuxcontainers.org
Wed May 30 07:44:46 UTC 2018
A non-text attachment was scrubbed...
Name: not available
Type: text/x-mailbox
Size: 548 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20180530/efa76f8c/attachment.bin>
-------------- next part --------------
From 165421ee66d5cf7c6ff6274b5afcfe9320bf4aab Mon Sep 17 00:00:00 2001
From: Donghwa Jeong <dh48.jeong at samsung.com>
Date: Wed, 30 May 2018 16:35:29 +0900
Subject: [PATCH] confile: pointer 'retv' is dereferenced.
Signed-off-by: Donghwa Jeong <dh48.jeong at samsung.com>
---
src/lxc/confile.c | 276 +++++++++++++++++++++++++++---------------------------
1 file changed, 138 insertions(+), 138 deletions(-)
diff --git a/src/lxc/confile.c b/src/lxc/confile.c
index 558e32e8c..014915462 100644
--- a/src/lxc/confile.c
+++ b/src/lxc/confile.c
@@ -2899,9 +2899,9 @@ static int get_config_personality(const char *key, char *retv, int inlen,
int fulllen = 0;
if (!retv)
- inlen = 0;
- else
- memset(retv, 0, inlen);
+ return -1;
+
+ memset(retv, 0, inlen);
#if HAVE_SYS_PERSONALITY_H
int len = 0;
@@ -2979,9 +2979,9 @@ static int __get_config_cgroup_controller(const char *key, char *retv,
bool get_all = false;
if (!retv)
- inlen = 0;
- else
- memset(retv, 0, inlen);
+ return -1;
+
+ memset(retv, 0, inlen);
if (version == CGROUP2_SUPER_MAGIC) {
global_token = "lxc.cgroup2";
@@ -3040,9 +3040,9 @@ static int get_config_cgroup_dir(const char *key, char *retv, int inlen,
int fulllen = 0;
if (!retv)
- inlen = 0;
- else
- memset(retv, 0, inlen);
+ return -1;
+
+ memset(retv, 0, inlen);
strprint(retv, inlen, "%s", lxc_conf->cgroup_meta.dir);
@@ -3079,9 +3079,9 @@ static int get_config_idmaps(const char *key, char *retv, int inlen,
char buf[__LXC_IDMAP_STR_BUF];
if (!retv)
- inlen = 0;
- else
- memset(retv, 0, inlen);
+ return -1;
+
+ memset(retv, 0, inlen);
listlen = lxc_list_len(&c->id_map);
lxc_list_for_each(it, &c->id_map)
@@ -3125,9 +3125,9 @@ static int get_config_mount_auto(const char *key, char *retv, int inlen,
const char *sep = "";
if (!retv)
- inlen = 0;
- else
- memset(retv, 0, inlen);
+ return -1;
+
+ memset(retv, 0, inlen);
if (!(c->auto_mounts & LXC_AUTO_ALL_MASK))
return 0;
@@ -3201,9 +3201,9 @@ static int get_config_mount(const char *key, char *retv, int inlen,
struct lxc_list *it;
if (!retv)
- inlen = 0;
- else
- memset(retv, 0, inlen);
+ return -1;
+
+ memset(retv, 0, inlen);
lxc_list_for_each(it, &c->mount_list) {
strprint(retv, inlen, "%s\n", (char *)it->elem);
@@ -3264,9 +3264,9 @@ static int get_config_hooks(const char *key, char *retv, int inlen,
return -1;
if (!retv)
- inlen = 0;
- else
- memset(retv, 0, inlen);
+ return -1;
+
+ memset(retv, 0, inlen);
lxc_list_for_each(it, &c->hooks[found]) {
strprint(retv, inlen, "%s\n", (char *)it->elem);
@@ -3287,9 +3287,9 @@ static int get_config_net(const char *key, char *retv, int inlen,
struct lxc_list *it;
if (!retv)
- inlen = 0;
- else
- memset(retv, 0, inlen);
+ return -1;
+
+ memset(retv, 0, inlen);
lxc_list_for_each(it, &c->network) {
struct lxc_netdev *n = it->elem;
@@ -3307,9 +3307,9 @@ static int get_config_cap_drop(const char *key, char *retv, int inlen,
struct lxc_list *it;
if (!retv)
- inlen = 0;
- else
- memset(retv, 0, inlen);
+ return -1;
+
+ memset(retv, 0, inlen);
lxc_list_for_each(it, &c->caps) {
strprint(retv, inlen, "%s\n", (char *)it->elem);
@@ -3325,9 +3325,9 @@ static int get_config_cap_keep(const char *key, char *retv, int inlen,
struct lxc_list *it;
if (!retv)
- inlen = 0;
- else
- memset(retv, 0, inlen);
+ return -1;
+
+ memset(retv, 0, inlen);
lxc_list_for_each(it, &c->keepcaps) {
strprint(retv, inlen, "%s\n", (char *)it->elem);
@@ -3431,9 +3431,9 @@ static int get_config_group(const char *key, char *retv, int inlen,
struct lxc_list *it;
if (!retv)
- inlen = 0;
- else
- memset(retv, 0, inlen);
+ return -1;
+
+ memset(retv, 0, inlen);
lxc_list_for_each(it, &c->groups) {
strprint(retv, inlen, "%s\n", (char *)it->elem);
@@ -3449,9 +3449,9 @@ static int get_config_environment(const char *key, char *retv, int inlen,
struct lxc_list *it;
if (!retv)
- inlen = 0;
- else
- memset(retv, 0, inlen);
+ return -1;
+
+ memset(retv, 0, inlen);
lxc_list_for_each(it, &c->environment) {
strprint(retv, inlen, "%s\n", (char *)it->elem);
@@ -3514,9 +3514,9 @@ static int get_config_prlimit(const char *key, char *retv, int inlen,
struct lxc_list *it;
if (!retv)
- inlen = 0;
- else
- memset(retv, 0, inlen);
+ return -1;
+
+ memset(retv, 0, inlen);
if (!strcmp(key, "lxc.prlimit"))
get_all = true;
@@ -3572,9 +3572,9 @@ static int get_config_sysctl(const char *key, char *retv, int inlen,
bool get_all = false;
if (!retv)
- inlen = 0;
- else
- memset(retv, 0, inlen);
+ return -1;
+
+ memset(retv, 0, inlen);
if (strcmp(key, "lxc.sysctl") == 0)
get_all = true;
@@ -3605,9 +3605,9 @@ static int get_config_proc(const char *key, char *retv, int inlen,
bool get_all = false;
if (!retv)
- inlen = 0;
- else
- memset(retv, 0, inlen);
+ return -1;
+
+ memset(retv, 0, inlen);
if (strcmp(key, "lxc.proc") == 0)
get_all = true;
@@ -3637,9 +3637,9 @@ static int get_config_namespace_clone(const char *key, char *retv, int inlen,
int fulllen = 0;
if (!retv)
- inlen = 0;
- else
- memset(retv, 0, inlen);
+ return -1;
+
+ memset(retv, 0, inlen);
for (i = 0; i < LXC_NS_MAX; i++) {
if (c->ns_clone & ns_info[i].clone_flag)
@@ -3656,9 +3656,9 @@ static int get_config_namespace_keep(const char *key, char *retv, int inlen,
int fulllen = 0;
if (!retv)
- inlen = 0;
- else
- memset(retv, 0, inlen);
+ return -1;
+
+ memset(retv, 0, inlen);
for (i = 0; i < LXC_NS_MAX; i++) {
if (c->ns_keep & ns_info[i].clone_flag)
@@ -3676,9 +3676,9 @@ static int get_config_namespace_share(const char *key, char *retv, int inlen,
int fulllen = 0;
if (!retv)
- inlen = 0;
- else
- memset(retv, 0, inlen);
+ return -1;
+
+ memset(retv, 0, inlen);
namespace = key + sizeof("lxc.namespace.share.") - 1;
ns_idx = lxc_namespace_2_ns_idx(namespace);
@@ -4523,14 +4523,14 @@ static int get_config_net_type(const char *key, char *retv, int inlen,
int fulllen = 0;
struct lxc_netdev *netdev = data;
- if (!retv)
- inlen = 0;
- else
- memset(retv, 0, inlen);
-
if (!netdev)
return -1;
+ if (!retv)
+ return -1;
+
+ memset(retv, 0, inlen);
+
strprint(retv, inlen, "%s", lxc_net_type_to_str(netdev->type));
return fulllen;
@@ -4543,14 +4543,14 @@ static int get_config_net_flags(const char *key, char *retv, int inlen,
int fulllen = 0;
struct lxc_netdev *netdev = data;
- if (!retv)
- inlen = 0;
- else
- memset(retv, 0, inlen);
-
if (!netdev)
return -1;
+ if (!retv)
+ return -1;
+
+ memset(retv, 0, inlen);
+
if (netdev->flags & IFF_UP)
strprint(retv, inlen, "up");
@@ -4564,14 +4564,14 @@ static int get_config_net_link(const char *key, char *retv, int inlen,
int fulllen = 0;
struct lxc_netdev *netdev = data;
- if (!retv)
- inlen = 0;
- else
- memset(retv, 0, inlen);
-
if (!netdev)
return -1;
+ if (!retv)
+ return -1;
+
+ memset(retv, 0, inlen);
+
if (netdev->link[0] != '\0')
strprint(retv, inlen, "%s", netdev->link);
@@ -4585,14 +4585,14 @@ static int get_config_net_name(const char *key, char *retv, int inlen,
int fulllen = 0;
struct lxc_netdev *netdev = data;
- if (!retv)
- inlen = 0;
- else
- memset(retv, 0, inlen);
-
if (!netdev)
return -1;
+ if (!retv)
+ return -1;
+
+ memset(retv, 0, inlen);
+
if (netdev->name[0] != '\0')
strprint(retv, inlen, "%s", netdev->name);
@@ -4607,17 +4607,17 @@ static int get_config_net_macvlan_mode(const char *key, char *retv, int inlen,
const char *mode;
struct lxc_netdev *netdev = data;
- if (!retv)
- inlen = 0;
- else
- memset(retv, 0, inlen);
-
if (!netdev)
return -1;
if (netdev->type != LXC_NET_MACVLAN)
return 0;
+ if (!retv)
+ return -1;
+
+ memset(retv, 0, inlen);
+
switch (netdev->priv.macvlan_attr.mode) {
case MACVLAN_MODE_PRIVATE:
mode = "private";
@@ -4648,17 +4648,17 @@ static int get_config_net_veth_pair(const char *key, char *retv, int inlen,
int fulllen = 0;
struct lxc_netdev *netdev = data;
- if (!retv)
- inlen = 0;
- else
- memset(retv, 0, inlen);
-
if (!netdev)
return -1;
if (netdev->type != LXC_NET_VETH)
return 0;
+ if (!retv)
+ return -1;
+
+ memset(retv, 0, inlen);
+
strprint(retv, inlen, "%s",
netdev->priv.veth_attr.pair[0] != '\0'
? netdev->priv.veth_attr.pair
@@ -4674,14 +4674,14 @@ static int get_config_net_script_up(const char *key, char *retv, int inlen,
int fulllen = 0;
struct lxc_netdev *netdev = data;
- if (!retv)
- inlen = 0;
- else
- memset(retv, 0, inlen);
-
if (!netdev)
return -1;
+ if (!retv)
+ return -1;
+
+ memset(retv, 0, inlen);
+
if (netdev->upscript)
strprint(retv, inlen, "%s", netdev->upscript);
@@ -4695,14 +4695,14 @@ static int get_config_net_script_down(const char *key, char *retv, int inlen,
int fulllen = 0;
struct lxc_netdev *netdev = data;
- if (!retv)
- inlen = 0;
- else
- memset(retv, 0, inlen);
-
if (!netdev)
return -1;
+ if (!retv)
+ return -1;
+
+ memset(retv, 0, inlen);
+
if (netdev->downscript)
strprint(retv, inlen, "%s", netdev->downscript);
@@ -4716,14 +4716,14 @@ static int get_config_net_hwaddr(const char *key, char *retv, int inlen,
int fulllen = 0;
struct lxc_netdev *netdev = data;
- if (!retv)
- inlen = 0;
- else
- memset(retv, 0, inlen);
-
if (!netdev)
return -1;
+ if (!retv)
+ return -1;
+
+ memset(retv, 0, inlen);
+
if (netdev->hwaddr)
strprint(retv, inlen, "%s", netdev->hwaddr);
@@ -4737,14 +4737,14 @@ static int get_config_net_mtu(const char *key, char *retv, int inlen,
int fulllen = 0;
struct lxc_netdev *netdev = data;
- if (!retv)
- inlen = 0;
- else
- memset(retv, 0, inlen);
-
if (!netdev)
return -1;
+ if (!retv)
+ return -1;
+
+ memset(retv, 0, inlen);
+
if (netdev->mtu)
strprint(retv, inlen, "%s", netdev->mtu);
@@ -4758,17 +4758,17 @@ static int get_config_net_vlan_id(const char *key, char *retv, int inlen,
int fulllen = 0;
struct lxc_netdev *netdev = data;
- if (!retv)
- inlen = 0;
- else
- memset(retv, 0, inlen);
-
if (!netdev)
return -1;
if (netdev->type != LXC_NET_VLAN)
return 0;
+ if (!retv)
+ return -1;
+
+ memset(retv, 0, inlen);
+
strprint(retv, inlen, "%d", netdev->priv.vlan_attr.vid);
return fulllen;
@@ -4782,14 +4782,14 @@ static int get_config_net_ipv4_gateway(const char *key, char *retv, int inlen,
int fulllen = 0;
struct lxc_netdev *netdev = data;
- if (!retv)
- inlen = 0;
- else
- memset(retv, 0, inlen);
-
if (!netdev)
return -1;
+ if (!retv)
+ return -1;
+
+ memset(retv, 0, inlen);
+
if (netdev->ipv4_gateway_auto) {
strprint(retv, inlen, "auto");
} else if (netdev->ipv4_gateway) {
@@ -4810,14 +4810,14 @@ static int get_config_net_ipv4_address(const char *key, char *retv, int inlen,
int fulllen = 0;
struct lxc_netdev *netdev = data;
- if (!retv)
- inlen = 0;
- else
- memset(retv, 0, inlen);
-
if (!netdev)
return -1;
+ if (!retv)
+ return -1;
+
+ memset(retv, 0, inlen);
+
listlen = lxc_list_len(&netdev->ipv4);
lxc_list_for_each(it, &netdev->ipv4) {
struct lxc_inetdev *i = it->elem;
@@ -4837,14 +4837,14 @@ static int get_config_net_ipv6_gateway(const char *key, char *retv, int inlen,
int fulllen = 0;
struct lxc_netdev *netdev = data;
- if (!retv)
- inlen = 0;
- else
- memset(retv, 0, inlen);
-
if (!netdev)
return -1;
+ if (!retv)
+ return -1;
+
+ memset(retv, 0, inlen);
+
if (netdev->ipv6_gateway_auto) {
strprint(retv, inlen, "auto");
} else if (netdev->ipv6_gateway) {
@@ -4865,14 +4865,14 @@ static int get_config_net_ipv6_address(const char *key, char *retv, int inlen,
int fulllen = 0;
struct lxc_netdev *netdev = data;
- if (!retv)
- inlen = 0;
- else
- memset(retv, 0, inlen);
-
if (!netdev)
return -1;
+ if (!retv)
+ return -1;
+
+ memset(retv, 0, inlen);
+
listlen = lxc_list_len(&netdev->ipv6);
lxc_list_for_each(it, &netdev->ipv6) {
struct lxc_inet6dev *i = it->elem;
@@ -4891,9 +4891,9 @@ int lxc_list_config_items(char *retv, int inlen)
int fulllen = 0;
if (!retv)
- inlen = 0;
- else
- memset(retv, 0, inlen);
+ return -1;
+
+ memset(retv, 0, inlen);
for (i = 0; i < config_size; i++) {
char *s = config[i].name;
@@ -4914,9 +4914,9 @@ int lxc_list_subkeys(struct lxc_conf *conf, const char *key, char *retv,
int fulllen = 0;
if (!retv)
- inlen = 0;
- else
- memset(retv, 0, inlen);
+ return -1;
+
+ memset(retv, 0, inlen);
if (!strcmp(key, "lxc.apparmor")) {
strprint(retv, inlen, "allow_incomplete\n");
@@ -4992,9 +4992,9 @@ int lxc_list_net(struct lxc_conf *c, const char *key, char *retv, int inlen)
return -1;
if (!retv)
- inlen = 0;
- else
- memset(retv, 0, inlen);
+ return -1;
+
+ memset(retv, 0, inlen);
strprint(retv, inlen, "type\n");
strprint(retv, inlen, "script.up\n");
More information about the lxc-devel
mailing list