authorgravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2026-05-31 18:10:44 -07:00
committergravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2026-05-31 18:10:44 -07:00
log3744bd2004110f418e09f9e61ee195ba9c20dc5b
treea75b4d5bdd95a6994f70318b3e0bf90bf0ccf8f4
parente145a883400796f2338f80c102f739fa8589d14a
signaturebadge-check Signed by SSH key SHA256:4hHJbtBRU58AYXwjL7fkz2fnQHdiye8x1QpTCQ0sHNw

fix another case


3 files changed, 34 insertions(+), 1 deletions(-)

fuzz/crashes/id:000000,sig:06,src:000000,time:1310,execs:717,op:quick,pos:97 created+31
......@@ -0,0 +1,31 @@
1id: g982zq6e8wsvnmduerpbf8787hu85brugmngn8wf
2name: yaml
3main: yaml.zig
4license: MIT
5description: " Yaml parser built on top of libyaml
6dependencies:
7 - src: git https://github.com/yaml/libyaml tag-0.2.5
8 id: 8mdbh0zuneb0i3hs5jby5je0heem1i6yxusl7c8y8qx68hqc
9 license: MIT
10 c_include_dirs:
11 - include
12 c_source_flags:
13 - -DYAML_VERSION_MAJOR=0
14 - -DYAML_VERSION_MINOR=2
15 - -DYAML_VERSION_PATCH=5
16 - -DYAML_VERSION_STRING="0.2.5"
17 - -DYAML_DECLARE_STATIC=1
18 c_source_files:
19 - src/api.c
20 - src/dumper.c
21 - src/emitter.c
22 - src/loader.c
23 - src/parser.c
24 - src/reader.c
25 - src/scanner.c
26 - src/writer.c
27
28 - src: git https://github.com/nektro/zig-extras
29
30root_dependencies:
31 - src: git https://github.com/nektro/zig-expect
test.zig+1
......@@ -21,6 +21,7 @@ fn fuzzCase(embedfile_content: []const u8) void {
2121// zig fmt: off
2222test { fuzzCase(@embedFile("./fuzz/crashes/id:000000,sig:06,src:000000,time:2049,execs:911,op:quick,pos:263")); }
2323test { fuzzCase(@embedFile("./fuzz/crashes/id:000000,sig:06,src:000000,time:6342,execs:4701,op:arith8,pos:55,val:+3")); }
24test { fuzzCase(@embedFile("./fuzz/crashes/id:000000,sig:06,src:000000,time:1310,execs:717,op:quick,pos:97")); }
2425// zig fmt: on
2526
2627fn parseTest(comptime basename: [:0]const u8) !void {
yaml.zig+2-1
......@@ -268,7 +268,7 @@ pub const Parser = struct {
268268
269269pub const Error =
270270 std.mem.Allocator.Error ||
271 error{ YamlUnexpectedToken, YamlEndOfStream };
271 error{ YamlUnexpectedToken, YamlEndOfStream, YamlInvalidMultilineString };
272272
273273fn parse_item(p: *Parser, start: ?Token) Error!Item {
274274 const tok = start orelse try p.next();
......@@ -376,6 +376,7 @@ fn get_event_string(event: Token, p: *const Parser) ![:0]u8 {
376376 const lines = p.lines;
377377 if (sm.line != em.line) {
378378 const starter = lines[sm.line][sm.column..];
379 if (starter.len > 1 and starter[0] == '"') return error.YamlInvalidMultilineString;
379380 std.debug.assert(starter.len == 1);
380381 switch (starter[0]) {
381382 '|' => {