Using double-size characters can cause the Atlas engine to crash #18415

Open
opened 2026-01-31 06:13:18 +00:00 by claunia · 0 comments
Owner

Originally created by @j4james on GitHub (Sep 10, 2022).

Windows Terminal version

Commit 3e6abd37df

Windows build number

10.0.19044.1889

Other Software

Vttest

Steps to reproduce

  1. Make sure the Atlas renderer is enabled.
  2. Open a WSL shell.
  3. Run Vttest, and select option 4, the "Test of double-size characters".
  4. While the first test page is visible, open the terminal settings.
  5. Without changing anything click Save and then close the settings.

Expected Behavior

No crash.

Actual Behavior

The app crashes with:

Unhandled exception thrown: write access violation.
it->_Ptr->_Next->**_Prev** was 0x7FFE52FDE460.

and the stack trace:

>	Microsoft.Terminal.Control.dll!Microsoft::Console::Render::AtlasEngine::StartPaint() Line 280	C++
 	Microsoft.Terminal.Control.dll!Microsoft::Console::Render::Renderer::_PaintFrameForEngine(Microsoft::Console::Render::IRenderEngine * const pEngine) Line 121	C++
 	Microsoft.Terminal.Control.dll!Microsoft::Console::Render::RenderThread::_ThreadProc() Line 214	C++
 	[External Code]	

Sometimes the crash occurs elsewhere, but it always seems to be something with the _Prev pointer being null or pointing somewhere inaccessible.

Originally created by @j4james on GitHub (Sep 10, 2022). ### Windows Terminal version Commit 3e6abd37df192d969088188ce836edbf645b13b4 ### Windows build number 10.0.19044.1889 ### Other Software [Vttest](https://www.invisible-island.net/vttest/) ### Steps to reproduce 1. Make sure the Atlas renderer is enabled. 2. Open a WSL shell. 3. Run _Vttest_, and select option 4, the "Test of double-size characters". 4. While the first test page is visible, open the terminal settings. 5. Without changing anything click _Save_ and then close the settings. ### Expected Behavior No crash. ### Actual Behavior The app crashes with: ``` Unhandled exception thrown: write access violation. it->_Ptr->_Next->**_Prev** was 0x7FFE52FDE460. ``` and the stack trace: ``` > Microsoft.Terminal.Control.dll!Microsoft::Console::Render::AtlasEngine::StartPaint() Line 280 C++ Microsoft.Terminal.Control.dll!Microsoft::Console::Render::Renderer::_PaintFrameForEngine(Microsoft::Console::Render::IRenderEngine * const pEngine) Line 121 C++ Microsoft.Terminal.Control.dll!Microsoft::Console::Render::RenderThread::_ThreadProc() Line 214 C++ [External Code] ``` Sometimes the crash occurs elsewhere, but it always seems to be something with the `_Prev` pointer being null or pointing somewhere inaccessible.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#18415