Skip to content

Commit b0649cd

Browse files
committed
Improve validation of object keys
1 parent f75e1f3 commit b0649cd

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

src/jawk.awk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,7 @@ function __parse_object(path, sep, i, raw_value, key, colon, value, raw_key) {
283283
raw_value = raw_value key
284284
break
285285
}
286-
if (length(key) < 2) __error(key)
286+
if (length(key) < 2 || substr(key, 1, 1) != "\"") __error(key)
287287
raw_key = key
288288
key = substr(key, 2, length(key) - 2)
289289
colon = __get_token()

test/run.sh

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,12 @@ err=$(cat test/err; rm test/err)
217217
[ "$out" = 1 ]
218218
[ "$err" = 'jawk: unexpected token "' ]
219219
220+
test "unexpected token in object key (number)"
221+
out=$(echo '{12:34}' | jawk '{print}' 2>test/err; echo $?)
222+
err=$(cat test/err; rm test/err)
223+
[ "$out" = 1 ]
224+
[ "$err" = 'jawk: unexpected token 12' ]
225+
220226
test "unexpected token in object colon"
221227
out=$(echo '{"x"c' | jawk '{print}' 2>test/err; echo $?)
222228
err=$(cat test/err; rm test/err)

0 commit comments

Comments
 (0)