浏览代码

fix #10, now failing on incorrect escape sequences

Max Bruckner 8 年之前
父节点
当前提交
dc4b62915a
共有 1 个文件被更改,包括 7 次插入2 次删除
  1. 7 2
      cJSON.c

+ 7 - 2
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++;
         }