blob: validate strings on parse
[project/libubox.git] / blob.c
diff --git a/blob.c b/blob.c
index 89ed31a..3bd69fa 100644 (file)
--- a/blob.c
+++ b/blob.c
@@ -142,6 +142,7 @@ blob_parse(struct blob_attr *attr, struct blob_attr **data, const struct blob_at
        blob_for_each_attr(pos, attr, rem) {
                int id = blob_id(pos);
                int len = blob_len(pos);
        blob_for_each_attr(pos, attr, rem) {
                int id = blob_id(pos);
                int len = blob_len(pos);
+               char *pdata;
 
                if (id >= max)
                        continue;
 
                if (id >= max)
                        continue;
@@ -158,6 +159,10 @@ blob_parse(struct blob_attr *attr, struct blob_attr **data, const struct blob_at
                                }
                        }
 
                                }
                        }
 
+                       pdata = blob_data(pos);
+                       if (type == BLOB_ATTR_STRING && pdata[len] != 0)
+                               continue;
+
                        if (info[id].minlen && len < info[id].minlen)
                                continue;
 
                        if (info[id].minlen && len < info[id].minlen)
                                continue;