]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
network: introduce and use is_empty_string()
authorChristian Brauner <christian.brauner@ubuntu.com>
Thu, 19 Mar 2020 11:45:23 +0000 (12:45 +0100)
committerChristian Brauner <christian.brauner@ubuntu.com>
Thu, 19 Mar 2020 11:45:23 +0000 (12:45 +0100)
since some members of struct lxc_netdev are arrays, not pointers.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
src/lxc/network.c
src/lxc/string_utils.h

index 544aab2753f2b2ce7507347f8a57e69f2f04cf00..b89c29a032b6d0b5867ae9fe3c1f972ec57c8740 100644 (file)
@@ -504,7 +504,7 @@ static int instantiate_macvlan(struct lxc_handler *handler, struct lxc_netdev *n
        }
 
        strlcpy(netdev->created_name, peer, IFNAMSIZ);
-       if (netdev->name[0] == '\0')
+       if (is_empty_string(netdev->name))
                (void)strlcpy(netdev->name, peer, IFNAMSIZ);
 
        netdev->ifindex = if_nametoindex(peer);
@@ -668,7 +668,7 @@ static int instantiate_ipvlan(struct lxc_handler *handler, struct lxc_netdev *ne
        }
 
        strlcpy(netdev->created_name, peer, IFNAMSIZ);
-       if (netdev->name[0] == '\0')
+       if (is_empty_string(netdev->name))
                (void)strlcpy(netdev->name, peer, IFNAMSIZ);
 
        netdev->ifindex = if_nametoindex(peer);
@@ -743,7 +743,7 @@ static int instantiate_vlan(struct lxc_handler *handler, struct lxc_netdev *netd
        }
 
        strlcpy(netdev->created_name, peer, IFNAMSIZ);
-       if (netdev->name[0] == '\0')
+       if (is_empty_string(netdev->name))
                (void)strlcpy(netdev->name, peer, IFNAMSIZ);
 
        netdev->ifindex = if_nametoindex(peer);
@@ -818,7 +818,7 @@ static int instantiate_phys(struct lxc_handler *handler, struct lxc_netdev *netd
        }
 
        strlcpy(netdev->created_name, netdev->link, IFNAMSIZ);
-       if (netdev->name[0] == '\0')
+       if (is_empty_string(netdev->name))
                (void)strlcpy(netdev->name, netdev->link, IFNAMSIZ);
 
        /*
@@ -924,7 +924,7 @@ static int instantiate_ns_veth(struct lxc_netdev *netdev)
                                       errno, "Failed to retrieve ifindex for network device with name %s",
                                       netdev->created_name);
 
-       if (netdev->name[0] == '\0')
+       if (is_empty_string(netdev->name))
                (void)strlcpy(netdev->name, "eth%d", IFNAMSIZ);
 
        if (strcmp(netdev->created_name, netdev->name) != 0) {
@@ -1179,10 +1179,8 @@ static int lxc_netdev_move_by_index_fd(int ifindex, int fd, const char *ifname)
        if (nla_put_u32(nlmsg, IFLA_NET_NS_FD, fd))
                goto out;
 
-       if (ifname != NULL) {
-               if (nla_put_string(nlmsg, IFLA_IFNAME, ifname))
-                       goto out;
-       }
+       if (!is_empty_string(ifname) && nla_put_string(nlmsg, IFLA_IFNAME, ifname))
+               goto out;
 
        err = netlink_transaction(&nlh, nlmsg, nlmsg);
 out:
@@ -1219,10 +1217,8 @@ int lxc_netdev_move_by_index(int ifindex, pid_t pid, const char *ifname)
        if (nla_put_u32(nlmsg, IFLA_NET_NS_PID, pid))
                goto out;
 
-       if (ifname != NULL) {
-               if (nla_put_string(nlmsg, IFLA_IFNAME, ifname))
-                       goto out;
-       }
+       if (!is_empty_string(ifname) && nla_put_string(nlmsg, IFLA_IFNAME, ifname))
+               goto out;
 
        err = netlink_transaction(&nlh, nlmsg, nlmsg);
 out:
@@ -2812,8 +2808,8 @@ static int lxc_create_network_unpriv_exec(const char *lxcpath, const char *lxcna
 
                INFO("Execing lxc-user-nic create %s %s %s veth %s %s", lxcpath,
                     lxcname, pidstr, netdev_link,
-                    netdev->name[0] != '\0' ? netdev->name : "(null)");
-               if (netdev->name[0] != '\0')
+                    !is_empty_string(netdev->name) ? netdev->name : "(null)");
+               if (!is_empty_string(netdev->name))
                        execlp(LXC_USERNIC_PATH, LXC_USERNIC_PATH, "create",
                               lxcpath, lxcname, pidstr, "veth", netdev_link,
                               netdev->name, (char *)NULL);
index ec0c1acef795e8a194602ce1984bb549b9aecc6f..2720f1097e405e66f5dce2a705b49c0936c029e5 100644 (file)
@@ -98,4 +98,9 @@ extern char *lxc_trim_whitespace_in_place(char *buffer);
 extern int lxc_is_line_empty(const char *line);
 extern void remove_trailing_slashes(char *p);
 
+static inline bool is_empty_string(const char *s)
+{
+       return !s || strcmp(s, "") == 0;
+}
+
 #endif /* __LXC_STRING_UTILS_H */