[BLOBMSG_TYPE_UNSPEC] = BLOB_ATTR_BINARY,
};
-static uint16_t
-blobmsg_namelen(const struct blobmsg_hdr *hdr)
-{
- return be16_to_cpu(hdr->namelen);
-}
-
bool blobmsg_check_attr(const struct blob_attr *attr, bool name)
{
return blobmsg_check_attr_len(attr, name, blob_raw_len(attr));
int blobmsg_check_array(const struct blob_attr *attr, int type)
{
- return blobmsg_check_array_len(attr, type, blob_raw_len(attr));
+ return blobmsg_check_array_len(attr, type, blobmsg_len(attr));
}
int blobmsg_check_array_len(const struct blob_attr *attr, int type, size_t len)
attr->id_len |= be32_to_cpu(BLOB_ATTR_EXTENDED);
hdr = blob_data(attr);
hdr->namelen = cpu_to_be16(namelen);
- strcpy((char *) hdr->name, (const char *)name);
+
+ memcpy(hdr->name, name, namelen);
+ hdr->name[namelen] = '\0';
+
pad_end = *data = blobmsg_data(attr);
pad_start = (char *) &hdr->name[namelen];
if (pad_start < pad_end)