LibVT: CSI <n> 'b' (repeat last character) causes crash if n is too large
```
VERIFICATION FAILED: column < columns() at ./Userland/Libraries/LibVT/Terminal.cpp:917
==== Thread #0 (TID 75) ====
0x00000002be05bdcd: [/usr/lib/libc.so] ak_verification_failed +0x4d (Assertions.cpp:100 => Assertions.cpp:93)
0x0000000c27c36cbb: [/usr/lib/libvt.so.serenity] VT::Terminal::put_character_at(unsigned int, unsigned int, unsigned int) [clone .localalias] +0x23b (Terminal.cpp:917)
0x0000000c27c3edad: [/usr/lib/libvt.so.serenity] VT::Terminal::execute_csi_sequence(AK::Span<unsigned int const>, AK::Span<unsigned char const>, bool, unsigned char) +0x3dd (Terminal.cpp:581 => Terminal.cpp:1261)
0x0000000c27c4fdc6: [/usr/lib/libvt.so.serenity] VT::EscapeSequenceParser::perform_action(VT::EscapeSequenceStateMachine::Action, unsigned char) [clone .localalias] +0xa6 (EscapeSequenceParser.cpp:119)
0x0000000c27c4055b: [/usr/lib/libvt.so.serenity] AK::Function<void (VT::EscapeSequenceStateMachine::Action, unsigned char)>::operator()(VT::EscapeSequenceStateMachine::Action, unsigned char) const +0x4b (Function.h:132)
0x0000000c27c3a8a9: [/usr/lib/libvt.so.serenity] VT::Terminal::on_input(unsigned char) +0x279 (EscapeSequenceStateMachine.h:81 => EscapeSequenceParser.h:45 => Terminal.cpp:1052)
0x0000000c27c4bed7: [/usr/lib/libvt.so.serenity] VT::TerminalWidget::set_pty_master_fd(int)::{lambda()#1}::operator()() const +0x77 (TerminalWidget.cpp:74)
0x0000000f4fce6bf4: [/usr/lib/libcorebasic.so.serenity] Core::Notifier::event(Core::Event&) [clone .localalias] +0x64 (Function.h:132 => Notifier.cpp:63 => Notifier.cpp:59)
0x0000000f4fce3534: [/usr/lib/libcorebasic.so.serenity] Core::EventReceiver::dispatch_event(Core::Event&, Core::EventReceiver*) +0x54 (EventReceiver.cpp:162)
0x0000000f4fce5c75: [/usr/lib/libcorebasic.so.serenity] Core::ThreadEventQueue::process() +0x1d5 (ThreadEventQueue.cpp:121)
0x0000000f4fcdfcbb: [/usr/lib/libcorebasic.so.serenity] Core::EventLoopImplementationUnix::exec() +0x3b (EventLoopImplementationUnix.cpp:324 => EventLoopImplementationUnix.cpp:316)
0x0000000f4fcdb012: [/usr/lib/libcorebasic.so.serenity] Core::EventLoop::exec() +0x42 (EventLoop.cpp:88)
0x0000001093e34036: [/bin/Terminal] serenity_main(Main::Arguments) +0x26a6 (main.cpp:475)
0x0000001093e2d945: [/bin/Terminal] main +0x85 (Main.cpp:39)
0x0000001093e2db24: [/bin/Terminal] _entry +0x24 (crt0.cpp:47)
```
Reproducer (at default terminal size):
```
printf 'x\e[80b'
```
0 条评论