From: Matthias Schiffer Date: Wed, 6 Apr 2016 15:40:22 +0000 (+0200) Subject: blobmsg_json: simplify add_separator and fix thread-safety X-Git-Url: http://git.archive.openwrt.org/?p=project%2Flibubox.git;a=commitdiff_plain;h=155bf39896f126b1ba121b816922a88dc34c31e3 blobmsg_json: simplify add_separator and fix thread-safety The hard-coded length limits are replaced with strlen to make the code more robust. Signed-off-by: Matthias Schiffer --- diff --git a/blobmsg_json.c b/blobmsg_json.c index 2d1d80d..5713948 100644 --- a/blobmsg_json.c +++ b/blobmsg_json.c @@ -135,21 +135,17 @@ static bool blobmsg_puts(struct strbuf *s, const char *c, int len) static void add_separator(struct strbuf *s) { - static char indent_chars[17] = "\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t"; - int indent; - char *start; + const char *indent_chars = "\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t"; + int len; if (!s->indent) return; - indent = s->indent_level; - if (indent > 16) - indent = 16; + len = s->indent_level + 1; + if (len > strlen(indent_chars)) + len = strlen(indent_chars); - start = &indent_chars[sizeof(indent_chars) - indent - 1]; - *start = '\n'; - blobmsg_puts(s, start, indent + 1); - *start = '\t'; + blobmsg_puts(s, indent_chars, len); }