summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--blobmsg.c5
-rw-r--r--json_script.c4
2 files changed, 5 insertions, 4 deletions
diff --git a/blobmsg.c b/blobmsg.c
index 93172ab..d87d607 100644
--- a/blobmsg.c
+++ b/blobmsg.c
@@ -296,7 +296,7 @@ int blobmsg_vprintf(struct blob_buf *buf, const char *name, const char *format,
if (len < 0)
return -1;
- sbuf = blobmsg_alloc_string_buffer(buf, name, len + 1);
+ sbuf = blobmsg_alloc_string_buffer(buf, name, len);
if (!sbuf)
return -1;
@@ -328,6 +328,7 @@ blobmsg_alloc_string_buffer(struct blob_buf *buf, const char *name, unsigned int
struct blob_attr *attr;
void *data_dest;
+ maxlen++;
attr = blobmsg_new(buf, BLOBMSG_TYPE_STRING, name, maxlen, &data_dest);
if (!attr)
return NULL;
@@ -343,7 +344,7 @@ blobmsg_realloc_string_buffer(struct blob_buf *buf, unsigned int maxlen)
{
struct blob_attr *attr = blob_next(buf->head);
int offset = attr_to_offset(buf, blob_next(buf->head)) + blob_pad_len(attr) - BLOB_COOKIE;
- int required = maxlen - (buf->buflen - offset);
+ int required = maxlen + 1 - (buf->buflen - offset);
if (required <= 0)
goto out;
diff --git a/json_script.c b/json_script.c
index 14d045d..7177e9c 100644
--- a/json_script.c
+++ b/json_script.c
@@ -431,7 +431,7 @@ static int eval_string(struct json_call *call, struct blob_buf *buf, const char
bool var = false;
char c = '%';
- dest = blobmsg_alloc_string_buffer(buf, name, 1);
+ dest = blobmsg_alloc_string_buffer(buf, name, 0);
if (!dest)
return -1;
@@ -473,7 +473,7 @@ static int eval_string(struct json_call *call, struct blob_buf *buf, const char
cur_len = end - str;
}
- new_buf = blobmsg_realloc_string_buffer(buf, len + cur_len + 1);
+ new_buf = blobmsg_realloc_string_buffer(buf, len + cur_len);
if (!new_buf) {
/* Make eval_string return -1 */
var = true;