Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.openwrt.org/project/libubox.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2011-10-06 19:19:28 +0400
committerFelix Fietkau <nbd@openwrt.org>2011-10-06 19:19:28 +0400
commit7c80b7c5147ac55455464224bd0a3f6aac0b51d0 (patch)
tree49db673ebc748ff32294fdaf9bf5509c5061367e /blobmsg.c
parent08aada9a932b5abde3f18492568d5b2187b49a32 (diff)
blobmsg: fill padding between name and data
Diffstat (limited to 'blobmsg.c')
-rw-r--r--blobmsg.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/blobmsg.c b/blobmsg.c
index 0129640..0551b26 100644
--- a/blobmsg.c
+++ b/blobmsg.c
@@ -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;
}