From: Felix Fietkau Date: Fri, 21 Jun 2013 15:19:37 +0000 (+0200) Subject: blobmsg_json: do not corrupt UTF-8 strings X-Git-Url: http://git.archive.openwrt.org/?p=project%2Flibubox.git;a=commitdiff_plain;h=6f192a6fb04504e065c222be11a6e294229300fe;hp=7c5d2b30815b5ff0b6bce35c1e486b3c17cce55b;ds=sidebyside blobmsg_json: do not corrupt UTF-8 strings Signed-off-by: Felix Fietkau --- diff --git a/blobmsg_json.c b/blobmsg_json.c index 7e6fca4..9835a88 100644 --- a/blobmsg_json.c +++ b/blobmsg_json.c @@ -151,11 +151,12 @@ static void add_separator(struct strbuf *s) static void blobmsg_format_string(struct strbuf *s, const char *str) { - const char *p, *last = str, *end = str + strlen(str); + const unsigned char *p, *last, *end; char buf[8] = "\\u00"; + end = (unsigned char *) str + strlen(str); blobmsg_puts(s, "\"", 1); - for (p = str; *p; p++) { + for (p = (unsigned char *) str, last = p; *p; p++) { char escape = '\0'; int len; @@ -187,7 +188,7 @@ static void blobmsg_format_string(struct strbuf *s, const char *str) continue; if (p > last) - blobmsg_puts(s, last, p - last); + blobmsg_puts(s, (char *) last, p - last); last = p + 1; buf[1] = escape; @@ -200,7 +201,7 @@ static void blobmsg_format_string(struct strbuf *s, const char *str) blobmsg_puts(s, buf, len); } - blobmsg_puts(s, last, end - last); + blobmsg_puts(s, (char *) last, end - last); blobmsg_puts(s, "\"", 1); }