tokenizer: fix 0 byte following invalid (#21482)

closes #21481
This commit is contained in:
Igor Stojković 2024-09-23 22:06:30 +02:00 committed by GitHub
parent 943176bbfc
commit 0676c04681
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -535,6 +535,8 @@ pub const Tokenizer = struct {
switch (self.buffer[self.index]) {
0 => if (self.index == self.buffer.len) {
result.tag = .invalid;
} else {
continue :state .invalid;
},
'\n' => result.tag = .invalid,
else => continue :state .invalid,
@ -1250,6 +1252,7 @@ test "invalid token characters" {
test "invalid literal/comment characters" {
try testTokenize("\"\x00\"", &.{.invalid});
try testTokenize("`\x00`", &.{.invalid});
try testTokenize("//\x00", &.{.invalid});
try testTokenize("//\x1f", &.{.invalid});
try testTokenize("//\x7f", &.{.invalid});