From 9c5162672b98964a0b37ff94bedfc6575fc53714 Mon Sep 17 00:00:00 2001 From: Theo Arends <11044339+arendst@users.noreply.github.com> Date: Sun, 13 Dec 2020 17:31:46 +0100 Subject: [PATCH] Fix JSMN unescape function Fix JSMN unescape function (#10107) --- lib/default/jsmn-shadinger-1.0/src/jsmn.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/default/jsmn-shadinger-1.0/src/jsmn.cpp b/lib/default/jsmn-shadinger-1.0/src/jsmn.cpp index 905d102f4..bfd0e11bb 100644 --- a/lib/default/jsmn-shadinger-1.0/src/jsmn.cpp +++ b/lib/default/jsmn-shadinger-1.0/src/jsmn.cpp @@ -399,6 +399,7 @@ void json_unescape(char* string) { c = string[++i]; switch (c) { case 0: + string[outlength++] = 0; return; // end of stream case '\"': case '/': @@ -427,7 +428,10 @@ void json_unescape(char* string) { uint32_t hexval = 0; for (uint32_t j = 0; j < 4; ++j) { char val = string[++i]; - if (0 == val) { return; } // we reached end of string + if (0 == val) { + string[outlength++] = 0; + return; // we reached end of string + } uint32_t uival = 0; if ((val >= 'a') && (val <= 'f')) uival = 10 + (val - 'a'); @@ -450,4 +454,5 @@ void json_unescape(char* string) { string[outlength++] = c; } } + string[outlength++] = 0; } \ No newline at end of file