Fix #1690 - mg_json_get for keys with the same prefix

This commit is contained in:
cpq committed 2022-08-29 12:40:50 +01:00
1 parent 1c16e95b3a
commit 0661f5921a
3 files changed
+11 -2

No files matched your search

+3 -1
View File
@@ -169,8 +169,10 @@ int mg_json_get(struct mg_str json, const char *path, int *toklen) {
int n = mg_pass_string(&s[i + 1], len - i - 1);
if (n < 0) return n;
if (i + 1 + n >= len) return MG_JSON_NOT_FOUND;
// printf("K[%.*s] %d %d\n", n, &s[i + 1], depth, ed);
// printf("K[%.*s] %d %d %d\n", n, &s[i + 1], n, depth, ed);
if (depth == ed && path[pos - 1] == '.' &&
(path[pos + n] == '\0' || path[pos + n] == '.' ||
path[pos + n] == '[') &&
strncmp(&s[i + 1], &path[pos], (size_t) n) == 0) {
pos += n;
}