From 16b6c9111e0872bb28096b489ef0362d05998b96 Mon Sep 17 00:00:00 2001 From: James Hamlin Date: Sat, 3 Dec 2022 17:05:39 -0800 Subject: [PATCH] Add missing keyword validation Signed-off-by: James Hamlin --- reader/reader.go | 2 +- ...574832cd26648a52e7a31fc9bae6aa08247b2b1dd2f3e0cb2fb021585b92 | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 reader/testdata/fuzz/FuzzCLJConformance/4c76574832cd26648a52e7a31fc9bae6aa08247b2b1dd2f3e0cb2fb021585b92 diff --git a/reader/reader.go b/reader/reader.go index 9f7c444..5db49c0 100644 --- a/reader/reader.go +++ b/reader/reader.go @@ -845,7 +845,7 @@ func (r *Reader) readKeyword() (interface{}, error) { } sym += string(rn) } - if sym == "" || sym == ":" { + if sym == "" || sym == ":" || strings.Contains(sym[1:], ":") { return nil, r.error("invalid keyword: :" + sym) } return value.NewKeyword(sym, value.WithSection(r.popSection())), nil diff --git a/reader/testdata/fuzz/FuzzCLJConformance/4c76574832cd26648a52e7a31fc9bae6aa08247b2b1dd2f3e0cb2fb021585b92 b/reader/testdata/fuzz/FuzzCLJConformance/4c76574832cd26648a52e7a31fc9bae6aa08247b2b1dd2f3e0cb2fb021585b92 new file mode 100644 index 0000000..5c70173 --- /dev/null +++ b/reader/testdata/fuzz/FuzzCLJConformance/4c76574832cd26648a52e7a31fc9bae6aa08247b2b1dd2f3e0cb2fb021585b92 @@ -0,0 +1,2 @@ +go test fuzz v1 +string("#{ a :b::c}\n")