diff options
author | Felix Fietkau <nbd@openwrt.org> | 2011-10-06 19:19:28 +0400 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2011-10-06 19:19:28 +0400 |
commit | 7c80b7c5147ac55455464224bd0a3f6aac0b51d0 (patch) | |
tree | 49db673ebc748ff32294fdaf9bf5509c5061367e /blobmsg.c | |
parent | 08aada9a932b5abde3f18492568d5b2187b49a32 (diff) |
blobmsg: fill padding between name and data
Diffstat (limited to 'blobmsg.c')
-rw-r--r-- | blobmsg.c | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -114,6 +114,7 @@ blobmsg_new(struct blob_buf *buf, int type, const char *name, int payload_len, v struct blob_attr *attr; struct blobmsg_hdr *hdr; int attrlen, namelen; + char *pad_start, *pad_end; if (!name) name = ""; @@ -127,7 +128,10 @@ blobmsg_new(struct blob_buf *buf, int type, const char *name, int payload_len, v hdr = blob_data(attr); hdr->namelen = cpu_to_be16(namelen); strcpy((char *) hdr->name, (const char *)name); - *data = blobmsg_data(attr); + pad_end = *data = blobmsg_data(attr); + pad_start = (char *) &hdr->name[namelen]; + if (pad_start < pad_end) + memset(pad_start, 0, pad_end - pad_start); return attr; } |