blobmsg_json: let blobmsg_format_json_with_cb with list == true also format arrays
[project/libubox.git] / blob.c
diff --git a/blob.c b/blob.c
index faa3bb8..9b721d1 100644 (file)
--- a/blob.c
+++ b/blob.c
@@ -115,10 +115,9 @@ blob_fill_pad(struct blob_attr *attr)
 void
 blob_set_raw_len(struct blob_attr *attr, unsigned int len)
 {
-       int id = blob_id(attr);
        len &= BLOB_ATTR_LEN_MASK;
-       len |= (id << BLOB_ATTR_ID_SHIFT) & BLOB_ATTR_ID_MASK;
-       attr->id_len = cpu_to_be32(len);
+       attr->id_len &= ~cpu_to_be32(BLOB_ATTR_LEN_MASK);
+       attr->id_len |= cpu_to_be32(len);
 }
 
 struct blob_attr *
@@ -237,7 +236,7 @@ blob_parse(struct blob_attr *attr, struct blob_attr **data, const struct blob_at
                        if (info[id].maxlen && len > info[id].maxlen)
                                continue;
 
-                       if (info[id].validate && !info[id].validate(&info[id], attr))
+                       if (info[id].validate && !info[id].validate(&info[id], pos))
                                continue;
                }