Using a soft font causes the Atlas engine to crash #19933

Closed
opened 2026-01-31 06:57:51 +00:00 by claunia · 3 comments
Owner

Originally created by @j4james on GitHub (May 23, 2023).

Windows Terminal version

1.18.1421.0

Windows build number

10.0.19045.2913

Other Software

No response

Steps to reproduce

  1. Make sure the Atlas engine is activated in the Advanced profile settings.
  2. Open a bash shell.
  3. Execute printf "\eP0;1;1;4;2;1{B~~~~~~~~/~~~~~~~~\e\\"

Expected Behavior

Most characters output at this point should be reverse question marks, except for ! which should map to a solid block.

Actual Behavior

The terminal crashes. This is caused by a null pointer reference when accessing the fontFaceEntry.fontFace field in BackendD3D::_initializeFontFaceEntry.

c589784b54/src/renderer/atlas/BackendD3D.cpp (L1158)

Just based on a brief scan of the code, I got the impression that it's expected for the fontFace to be null when you have a soft font, so it may just be that this method hasn't allowed for that case. This appears to be a regression introduced in PR #15343.

Originally created by @j4james on GitHub (May 23, 2023). ### Windows Terminal version 1.18.1421.0 ### Windows build number 10.0.19045.2913 ### Other Software _No response_ ### Steps to reproduce 1. Make sure the Atlas engine is activated in the Advanced profile settings. 2. Open a bash shell. 3. Execute `printf "\eP0;1;1;4;2;1{B~~~~~~~~/~~~~~~~~\e\\"` ### Expected Behavior Most characters output at this point should be reverse question marks, except for `!` which should map to a solid block. ### Actual Behavior The terminal crashes. This is caused by a null pointer reference when accessing the `fontFaceEntry.fontFace` field in `BackendD3D::_initializeFontFaceEntry`. https://github.com/microsoft/terminal/blob/c589784b54d46187289651fa6c04c49fe05826aa/src/renderer/atlas/BackendD3D.cpp#L1158 Just based on a brief scan of the code, I got the impression that it's expected for the `fontFace` to be null when you have a soft font, so it may just be that this method hasn't allowed for that case. This appears to be a regression introduced in PR #15343.
Author
Owner

@lhecker commented on GitHub (May 23, 2023):

Ah dang I didn't test it again after the PR. 😟 Sorry for breaking it, and thank you so much for noticing it!
(#15343 was written in a bit... a lot of a hurry. 😅)

@lhecker commented on GitHub (May 23, 2023): Ah dang I didn't test it again after the PR. 😟 Sorry for breaking it, and thank you so much for noticing it! (#15343 was written in a bit... a lot of a hurry. 😅)
Author
Owner

@lhecker commented on GitHub (May 25, 2023):

FYI the link I distributed in some other comments (click) is a build that also contains the PR that fixes this. If you're eager to test it out, you could consider installing that build. 🙂

@lhecker commented on GitHub (May 25, 2023): FYI the link I distributed in some other comments ([click](https://blob.hecker.io/sharex/Microsoft.WindowsTerminalPreview_1.18.1443.0_8wekyb3d8bbwe.msixbundle)) is a build that also contains the PR that fixes this. If you're eager to test it out, you could consider installing that build. 🙂
Author
Owner

@j4james commented on GitHub (May 25, 2023):

I've patched my local build with the changes in your PR and it's working great now. Thanks!

@j4james commented on GitHub (May 25, 2023): I've patched my local build with the changes in your PR and it's working great now. Thanks!
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#19933