scan_jsonescape ends when it sees an unescaped "

This commit is contained in:
leitner
2017-03-13 13:46:37 +00:00
parent da2a8332fe
commit 3c68ae0dcc
2 changed files with 5 additions and 1 deletions

View File

@@ -11,6 +11,9 @@ size_t scan_jsonescape(const char *src,char *dest,size_t *destlen) {
for (i=0; s[i]; ++i) {
if ((c=s[i])=='\\') {
switch (s[i+1]) {
case '"':
if (prev!=(unsigned int)-1) return 0; // lead surrogate not followed by tail surrogate
goto done;
case '\\':
if (prev!=(unsigned int)-1) return 0; // lead surrogate not followed by tail surrogate
// c='\\'; // c already is backslash
@@ -54,6 +57,7 @@ size_t scan_jsonescape(const char *src,char *dest,size_t *destlen) {
if (dest) dest[written]=c;
++written;
}
done:
*destlen=written;
return i;
}