diff --git a/cJSON.c b/cJSON.c index 06d2cb8d7024b94d18f6ab33aa9e4882434d0fc3..00875c5b17ffee7f781e002661229dc398b4352b 100644 --- a/cJSON.c +++ b/cJSON.c @@ -534,6 +534,11 @@ static const char *parse_string(cJSON *item, const char *str, const char **ep) case 't': *ptr2++ = '\t'; break; + case '\"': + case '\\': + case '/': + *ptr2++ = *ptr; + break; case 'u': /* transcode utf16 to utf8. See RFC2781 and RFC3629. */ uc = parse_hex4(ptr + 1); /* get the unicode char. */ @@ -620,8 +625,8 @@ static const char *parse_string(cJSON *item, const char *str, const char **ep) ptr2 += len; break; default: - *ptr2++ = *ptr; - break; + *ep = str; + return 0; } ptr++; }