summaryrefslogtreecommitdiff
path: root/strings/json_lib.c
diff options
context:
space:
mode:
authorRucha Deodhar <rucha.deodhar@mariadb.com>2022-12-29 17:34:53 +0530
committerRucha Deodhar <rucha.deodhar@mariadb.com>2022-12-29 17:34:53 +0530
commit1be914eebd3643ef7f428cf27434675e757ec35f (patch)
treeb21cc5223d546b07406a62ede1e9f247d69695d3 /strings/json_lib.c
parent5bb2cc8dbcfba3aa1e19a0b0d7ffcf27eed3290e (diff)
downloadmariadb-git-bb-10.9-MDEV-29381.tar.gz
MDEV-29381: JSON paths containing dashes are reported as syntax errors inbb-10.9-MDEV-29381
procedures Analysis: While scanning json path, when '-' is encountered while scanning a key, the the json_path_transition reports incorrect state that denotes syntax error. Hence it incorrectly reports error. Fix: Change JE_SYN to PS_KNMX to keep scanning the key.
Diffstat (limited to 'strings/json_lib.c')
-rw-r--r--strings/json_lib.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/strings/json_lib.c b/strings/json_lib.c
index 380959cf204..8febbe75e4c 100644
--- a/strings/json_lib.c
+++ b/strings/json_lib.c
@@ -1111,7 +1111,7 @@ static int json_path_transitions[N_PATH_STATES][N_PATH_CLASSES]=
/* KEYX*/ { JE_EOS, PS_KNMX, PS_KNMX, PS_KNMX, PS_KNMX, PS_KNMX, PS_KNMX, JE_SYN,
PS_KNMX, PS_KNMX, PS_KNMX, PS_KNMX, PS_KNMX, PS_ESCX, PS_EKYX, PS_KNMX,
JE_NOT_JSON_CHR, JE_BAD_CHR},
-/* KNMX */{ JE_EOS, PS_KNMX, PS_KNMX, PS_KNMX, PS_KNMX, PS_KNMX, PS_KNMX, JE_SYN,
+/* KNMX */{ JE_EOS, PS_KNMX, PS_KNMX, PS_KNMX, PS_KNMX, PS_KNMX, PS_KNMX, PS_KNMX,
PS_KNMX, PS_KNMX, PS_KNMX, PS_KNMX, PS_KNMX, PS_ESCX, PS_EKYX, PS_KNMX,
JE_NOT_JSON_CHR, JE_BAD_CHR},
/* LAST */{ JE_SYN, JE_SYN, JE_SYN, JE_SYN, JE_SYN, PS_PT, JE_SYN, PS_NEG,