blobmsg: fix dynamic string buffer length calculation
authorFelix Fietkau <nbd@openwrt.org>
Sun, 6 Feb 2011 01:07:26 +0000 (02:07 +0100)
committerFelix Fietkau <nbd@openwrt.org>
Sun, 6 Feb 2011 01:07:26 +0000 (02:07 +0100)
blobmsg.c

index ed7a880ef7c36179d6888e175a133345b5985327..a77f1582ab823f720c0c11667fe7faa307581b7f 100644 (file)
--- a/blobmsg.c
+++ b/blobmsg.c
@@ -321,7 +321,7 @@ blobmsg_alloc_string_buffer(struct blob_buf *buf, const char *name, int maxlen)
                return NULL;
 
        data_dest = blobmsg_data(attr);
-       blob_set_raw_len(buf->head, blob_pad_len(buf->head) - blob_raw_len(attr));
+       blob_set_raw_len(buf->head, blob_pad_len(buf->head) - blob_pad_len(attr));
        blob_set_raw_len(attr, blob_raw_len(attr) - maxlen);
 
        return data_dest;
@@ -338,7 +338,7 @@ blobmsg_add_string_buffer(struct blob_buf *buf)
 
        attrlen = blob_raw_len(attr) + len;
        blob_set_raw_len(attr, attrlen);
-       blob_set_raw_len(buf->head, blob_raw_len(buf->head) + attrlen);
+       blob_set_raw_len(buf->head, blob_raw_len(buf->head) + blob_pad_len(attr));
 }
 
 int