migueldeicaza / XtermSharp

XTerm emulator as a .NET library
MIT License
161 stars 34 forks source link

Fix IndexOutOfRangeException processing input #80

Closed mrward closed 4 years ago

mrward commented 4 years ago

Backport code changes made to SwiftTerm which prevent accessing an array index outside its range when processing escape codes for foreground and background colours. Code backported:

https://github.com/migueldeicaza/SwiftTerm/blob/d5ab249b56c5a95ba4c505dec8f652ff436e5124/Sources/SwiftTerm/Terminal.swift#L2715-L2791

Error:

XtermSharp.InputHandler.CharAttributes(Int32[]) XtermSharp.InputHandler.<>cXXX.<.ctor>bXXX(Int32[],String) XtermSharp.EscapeSequenceParser.Parse(Byte*,Int32) XtermSharp.InputHandler.Parse(Byte[],Int32) XtermSharp.Terminal.Feed(Byte[],Int32) XtermSharp.Mac.TerminalView.Feed(Byte[],Int32) XtermSharp.Mac.ProcessTerminalView.ProcessOnData(Byte[]) XtermSharp.Mac.Process.SendOnData(Byte[]) XtermSharp.Mac.LocalProcess.ChildProcessRead(DispatchData,Int32) CoreFoundation.DispatchIO.Trampoline_DispatchReadWriteHandler(IntPtr,IntPtr,Int32)