json_script: fix eval_string().

- Fix handling of "%%".
 - Fix length requirement when calling blobmsg_realloc_string_buffer().

Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
This commit is contained in:
Yousong Zhou 2014-11-12 21:59:22 +08:00 committed by Felix Fietkau
parent 8c6dadbe03
commit 30e6cca939

View file

@ -416,7 +416,7 @@ static int eval_string(struct json_call *call, struct blob_buf *buf, const char
} }
if (cur_var) { if (cur_var) {
if (next > str) { if (end > str) {
cur = msg_find_var(call, str); cur = msg_find_var(call, str);
if (!cur) if (!cur)
continue; continue;
@ -434,7 +434,7 @@ static int eval_string(struct json_call *call, struct blob_buf *buf, const char
cur_len = end - str; cur_len = end - str;
} }
dest = blobmsg_realloc_string_buffer(buf, cur_len + 1); dest = blobmsg_realloc_string_buffer(buf, len + cur_len + 1);
memcpy(dest + len, cur, cur_len); memcpy(dest + len, cur, cur_len);
len += cur_len; len += cur_len;
} }