service: add missing null pointer check
authorFelix Fietkau <nbd@nbd.name>
Fri, 31 Jan 2025 11:29:28 +0000 (12:29 +0100)
committerFelix Fietkau <nbd@nbd.name>
Fri, 31 Jan 2025 11:29:51 +0000 (12:29 +0100)
Fixes crash when encountering a service without a valid member list

Signed-off-by: Felix Fietkau <nbd@nbd.name>
service.c

index 5237915b0fbede942d2012720186a9591167e8e8..0050c2354164bc1da37b5e605da973d504567228 100644 (file)
--- a/service.c
+++ b/service.c
@@ -120,7 +120,8 @@ service_add(struct network *net, struct blob_attr *data)
        if ((cur = tb[SERVICE_ATTR_TYPE]) != NULL)
                type = blobmsg_get_string(cur);
 
-       if (blobmsg_check_array(tb[SERVICE_ATTR_MEMBERS], BLOBMSG_TYPE_STRING) < 0)
+       if (!tb[SERVICE_ATTR_MEMBERS] ||
+           blobmsg_check_array(tb[SERVICE_ATTR_MEMBERS], BLOBMSG_TYPE_STRING) < 0)
                return;
 
        config = tb[SERVICE_ATTR_CONFIG];