diff --git a/src/terminal/sgr.zig b/src/terminal/sgr.zig index ecec3ed56..9b3dc7a21 100644 --- a/src/terminal/sgr.zig +++ b/src/terminal/sgr.zig @@ -225,7 +225,7 @@ pub const Parser = struct { .b = @truncate(rgb[2]), }, }; - } else if (slice.len >= 2 and slice[1] == 5) { + } else if (slice.len >= 3 and slice[1] == 5) { self.idx += 2; return Attribute{ .@"256_bg" = @truncate(slice[2]), @@ -538,3 +538,9 @@ test "sgr: direct color fg missing color" { var p: Parser = .{ .params = &[_]u16{ 38, 5 }, .colon = false }; while (p.next()) |_| {} } + +test "sgr: direct color bg missing color" { + // This used to crash + var p: Parser = .{ .params = &[_]u16{ 48, 5 }, .colon = false }; + while (p.next()) |_| {} +}