1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 07:47:35 +00:00

LibVT: Always check intermediate bytes in CSI sequences

Previously, we only checked the intermediate bytes for those escape
sequences that performed different operations based on their
intermediate bytes. This lead to a crash when `CSI ?1001 r` was
incorrectly parsed as `CSI Pt ; Pb r` (note the missing question mark),
as seen in #8559.
This commit is contained in:
Daniel Bertalan 2021-07-09 12:08:36 +02:00 committed by Ali Mohammad Pur
parent 52aa777d49
commit 0e04f7cf1e
2 changed files with 201 additions and 213 deletions

View file

@ -226,7 +226,8 @@ protected:
void emit_string(const StringView&);
void alter_mode(bool should_set, Parameters, Intermediates);
void alter_ansi_mode(bool should_set, Parameters);
void alter_private_mode(bool should_set, Parameters);
// CUU Cursor Up
void CUU(Parameters);
@ -274,10 +275,16 @@ protected:
void DECSTBM(Parameters);
// RM Reset Mode
void RM(Parameters, Intermediates);
void RM(Parameters);
// DECRST - DEC Private Mode Reset
void DECRST(Parameters);
// SM Set Mode
void SM(Parameters, Intermediates);
void SM(Parameters);
// DECSET - Dec Private Mode Set
void DECSET(Parameters);
// DA - Device Attributes
void DA(Parameters);