diff mbox

[OpenWrt-Devel,libubox] blobmsg_json: simplify add_separator and fix thread-safety

Message ID daa61d4a2559055b35515f8f0f172b87f95d0b7d.1459957222.git.mschiffer@universe-factory.net
State Changes Requested
Headers show

Commit Message

Matthias Schiffer April 6, 2016, 3:40 p.m. UTC
The hard-coded length limits are replaced with strlen to make the code more
robust.

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
---
 blobmsg_json.c | 16 ++++++----------
 1 file changed, 6 insertions(+), 10 deletions(-)
diff mbox

Patch

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);
 }