Two Sixel support fixes needed for stabilization on noble
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Tmux |
Fix Released
|
Unknown
|
|||
tmux (Debian) |
Fix Released
|
Unknown
|
|||
tmux (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Noble |
In Progress
|
Undecided
|
Lena Voytek |
Bug Description
[Impact]
With the addition of SIXEL support by default, tmux may crash due to SIXEL images having no color or being unable to scale. This is most often seen when opening neovim in a tmux session.
This fix will allow problematic SIXEL images to render without crashing tmux, and most importantly will fix using neovim in tmux.
The bug is fixed through an upstream patch that adds checks for a lack of colors or scalability in SIXEL images, while also freeing them regardless of reflow state.
[Test Plan]
As stated by the reporter, the steps to reproduce are:
Steps to reproduce:
1. SSH to a Noble machine
2. Install latest stable release of neovim (0.10.0)
3. Run tmux with 'tmux -vv' to spawn a server with verbose logging
4. Run neovim with 'sudo nvim -u NONE'
5. [server exited unexpectedly]
Observe in log (tmux-server-
1717870463.535540 input_enter_dcs
1717870463.535557 screen_
1717870463.535577 tty_cmd_sixelimage: image is 1x1
1717870463.535595 tty_cmd_sixelimage: clamping to 0,0-1,1
1717870463.535615 fatal: xcalloc: zero size
The bug is fixed when tmux no longer crashes after following these instructions.
[Where problems could occur]
Based on the changes added through the commit, problems would be limited to sixel image rendering. Previously, images with no colors or ability to scale would lead to a crash. Now, however, they cause their respective functions to bail out early. Likewise no color images cause sixel_print() to return NULL. If other functions calling these do not handle the results properly, then this may cause new issues. Finally, when resizing the screen, all images are freed and redrawn regardless of reflow. This may cause changes in behavior when resizing the screen without reflow enabled.
[Other Info]
This bug has been fixed in Debian Sid and Oracular through the inclusion of individual upstream commits as patches in 3.4-3
[Original Description]
Please sync tmux (main) from Oracular (main)
Noble was released with 3.4 which introduced half-baked Sixel support enabled by default that now had two important crash fixes upstream.
Related branches
- git-ubuntu bot: Approve
- Mitchell Dzurick (community): Approve
- Canonical Server: Pending requested
- Canonical Server Reporter: Pending requested
-
Diff: 105 lines (+73/-1)4 files modifieddebian/changelog (+7/-0)
debian/control (+2/-1)
debian/patches/lp-2068393-fix-sixel-invalid-colour-register.patch (+63/-0)
debian/patches/series (+1/-0)
Changed in tmux (Ubuntu): | |
status: | Incomplete → Triaged |
Changed in tmux (Ubuntu Noble): | |
status: | New → Triaged |
Changed in tmux (Ubuntu): | |
status: | Triaged → Fix Released |
tags: | added: server-todo |
Changed in tmux (Debian): | |
status: | Unknown → Fix Released |
summary: |
- Sync tmux (main) from Oracular (main) + Two Sixel support fixes needed for stabilization on noble |
Changed in tmux: | |
status: | Unknown → Fix Released |
description: | updated |
Changed in tmux (Ubuntu Noble): | |
status: | Incomplete → In Progress |
Hello and thanks for this bug report, however what you suggest is not how updates to stable Ubuntu releases are handled, see [1] for more information. What we need in the bug report is a statement of the problem, with possibly a reproducer and ideally with a pointer to the upstream or Debian fix. Something on these lines:
- On Noble, if you do XYZ then tmux crashes
- This bug appears to be fixed by upstream commit aa17f0e0c1
- That commit has been cherry-picked in tmux 3.4-3:
---
tmux (3.4-3) unstable; urgency=medium
* Cherry-pick commit aa17f0e0c1 from upstream to fix crash on invalid
Sixel input.
---
Closely related issues that are to be fixed together go into the same bug.
Thanks!
https:/ /wiki.ubuntu. com/StableRelea seUpdates