network: check for empty string arguments
authorFelix Fietkau <nbd@nbd.name>
Tue, 16 Aug 2022 15:48:07 +0000 (17:48 +0200)
committerFelix Fietkau <nbd@nbd.name>
Tue, 23 Aug 2022 21:20:25 +0000 (23:20 +0200)
Signed-off-by: Felix Fietkau <nbd@nbd.name>
network.c

index 80909c40103e9ae74344686f7fd1227827375712..15429ad0591228c8ea8059ed72cf33475af22f22 100644 (file)
--- a/network.c
+++ b/network.c
@@ -474,6 +474,7 @@ network_set_config(struct network *net, struct blob_attr *config)
                      blobmsg_len(net->config.data));
 
        if ((cur = tb[NETWORK_ATTR_TYPE]) == NULL ||
+           !strlen(blobmsg_get_string(cur)) ||
            !strcmp(blobmsg_get_string(cur), "dynamic"))
                net->config.type = NETWORK_TYPE_DYNAMIC;
        else if (!strcmp(blobmsg_get_string(cur), "file"))
@@ -510,13 +511,16 @@ network_set_config(struct network *net, struct blob_attr *config)
                break;
        }
 
-       if ((cur = tb[NETWORK_ATTR_INTERFACE]) != NULL)
+       if ((cur = tb[NETWORK_ATTR_INTERFACE]) != NULL &&
+           strlen(blobmsg_get_string(cur)) > 0)
                net->config.interface = blobmsg_get_string(cur);
 
-       if ((cur = tb[NETWORK_ATTR_UPDATE_CMD]) != NULL)
+       if ((cur = tb[NETWORK_ATTR_UPDATE_CMD]) != NULL &&
+           strlen(blobmsg_get_string(cur)) > 0)
                net->config.update_cmd = blobmsg_get_string(cur);
 
-       if ((cur = tb[NETWORK_ATTR_DOMAIN]) != NULL)
+       if ((cur = tb[NETWORK_ATTR_DOMAIN]) != NULL &&
+           strlen(blobmsg_get_string(cur)) > 0)
                net->config.domain = blobmsg_get_string(cur);
 
        if ((cur = tb[NETWORK_ATTR_TUNNELS]) != NULL)