blobmsg: fix length in blobmsg_check_array
authorFelix Fietkau <nbd@nbd.name>
Mon, 25 May 2020 11:44:20 +0000 (13:44 +0200)
committerFelix Fietkau <nbd@nbd.name>
Tue, 26 May 2020 08:06:53 +0000 (10:06 +0200)
blobmsg_check_array_len expects the length of the full attribute buffer,
not just the data length.
Due to other missing length checks (fixed in the next commit), this did
not show up as a test failure

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

index 59045e1672c85efdf4431874230d45901aa7ad6e..daaa9fc8444b7320acb8a48d5bdfb0ece6d734cc 100644 (file)
--- a/blobmsg.c
+++ b/blobmsg.c
@@ -114,7 +114,7 @@ bool blobmsg_check_attr_len(const struct blob_attr *attr, bool name, size_t len)
 
 int blobmsg_check_array(const struct blob_attr *attr, int type)
 {
-       return blobmsg_check_array_len(attr, type, blob_len(attr));
+       return blobmsg_check_array_len(attr, type, blob_raw_len(attr));
 }
 
 int blobmsg_check_array_len(const struct blob_attr *attr, int type,