liamg / darktile

:waning_crescent_moon: Darktile is a GPU rendered terminal emulator designed for tiling window managers.
MIT License
3.03k stars 113 forks source link

`cat /dev/urandom` crashes the terminal #316

Open thevar1able opened 2 years ago

thevar1able commented 2 years ago

Steps to reproduce:

cat /dev/urandom

Stacktrace:

panic: runtime error: index out of range [1] with length 1

goroutine 12 [running]:
github.com/liamg/darktile/internal/app/darktile/sixel.(*decoder).processHeader(0xc000052c98, 0x30, 0x556bc20f25e0)
github.com/liamg/darktile/internal/app/darktile/sixel/decoder.go:91 +0x41e
github.com/liamg/darktile/internal/app/darktile/sixel.(*decoder).Decode(0xc000052c98, 0xc001ec6000, 0x556bc1c36d01, 0x100c0001f2fb8, 0x7fa228140338)
github.com/liamg/darktile/internal/app/darktile/sixel/decoder.go:41 +0x31
github.com/liamg/darktile/internal/app/darktile/sixel.Decode(0x556bc2119098, 0xc0001d8000, 0x556bc2119438, 0xc00037ecc4, 0xc0001f2801, 0x7b9, 0x400, 0x540)
github.com/liamg/darktile/internal/app/darktile/sixel/decoder.go:26 +0xf5
github.com/liamg/darktile/internal/app/darktile/termutil.(*Terminal).handleSixel(0xc000117c20, 0xc000706000, 0x2)
github.com/liamg/darktile/internal/app/darktile/termutil/sixel.go:90 +0x238
github.com/liamg/darktile/internal/app/darktile/termutil.(*Terminal).handleANSI(0xc000117c20, 0xc000706000, 0x0)
github.com/liamg/darktile/internal/app/darktile/termutil/ansi.go:39 +0x965
github.com/liamg/darktile/internal/app/darktile/termutil.(*Terminal).process(0xc000117c20)
github.com/liamg/darktile/internal/app/darktile/termutil/terminal.go:206 +0xc5
created by github.com/liamg/darktile/internal/app/darktile/termutil.(*Terminal).Run
github.com/liamg/darktile/internal/app/darktile/termutil/terminal.go:171 +0x205
awnumar commented 1 year ago

This is probably expected behaviour. Dumping random data into the terminal isn't safe, write it to a file instead or pipe it into another program