]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
confile: cleanup set_config_uts_name()
authorChristian Brauner <christian.brauner@ubuntu.com>
Tue, 8 Dec 2020 15:13:41 +0000 (16:13 +0100)
committerChristian Brauner <christian.brauner@ubuntu.com>
Tue, 8 Dec 2020 15:49:40 +0000 (16:49 +0100)
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
src/lxc/confile.c

index 4fdc96c5a9cdf2b9e425e2a2adcc4a71f689353a..eee2d4d7c82528ecbd076d79a695241dd5c17318 100644 (file)
@@ -2618,7 +2618,7 @@ static int set_config_rootfs_options(const char *key, const char *value,
 static int set_config_uts_name(const char *key, const char *value,
                              struct lxc_conf *lxc_conf, void *data)
 {
-       struct utsname *utsname;
+       __do_free struct utsname *utsname = NULL;
 
        if (lxc_config_value_empty(value)) {
                clr_config_uts_name(key, lxc_conf, NULL);
@@ -2627,16 +2627,14 @@ static int set_config_uts_name(const char *key, const char *value,
 
        utsname = malloc(sizeof(*utsname));
        if (!utsname)
-               return -1;
+               return ret_errno(ENOMEM);
 
-       if (strlen(value) >= sizeof(utsname->nodename)) {
-               free(utsname);
-               return -1;
-       }
+       if (strlen(value) >= sizeof(utsname->nodename))
+               return ret_errno(EINVAL);
 
        (void)strlcpy(utsname->nodename, value, sizeof(utsname->nodename));
        free(lxc_conf->utsname);
-       lxc_conf->utsname = utsname;
+       lxc_conf->utsname = move_ptr(utsname);
 
        return 0;
 }