aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Stojković <stojkovic.igor@gmail.com>2024-09-23 22:06:30 +0200
committerGitHub <noreply@github.com>2024-09-23 13:06:30 -0700
commit0676c04681ad7104faa7634c781df386e839d17b (patch)
tree820e9619b6449516c4ff4cba6cb6db6edc216034
parent943176bbfcf3125451fa64e082ee357c28e70413 (diff)
downloadzig-0676c04681ad7104faa7634c781df386e839d17b.tar.gz
zig-0676c04681ad7104faa7634c781df386e839d17b.zip
tokenizer: fix 0 byte following invalid (#21482)
closes #21481
-rw-r--r--lib/std/zig/tokenizer.zig3
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/std/zig/tokenizer.zig b/lib/std/zig/tokenizer.zig
index db69693a93..7f82db786f 100644
--- a/lib/std/zig/tokenizer.zig
+++ b/lib/std/zig/tokenizer.zig
@@ -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});