mirror of
https://github.com/sharkdp/bat.git
synced 2026-10-26 20:16:33 +00:00
Fix capacity-overflow panic in print_snip at --terminal-width 1
`InteractivePrinter::print_snip` computes the snip separator width as `term_width - panel_count - snip_left_count - title_count`. At `--terminal-width 1` the panel is disabled and `title_count == 2`, so the subtraction underflows `usize` (release has no overflow-checks, so it wraps to ~usize::MAX); `str::repeat` then aborts with "capacity overflow" whenever a snip separator is emitted (two or more disjoint line ranges, or a diff gap) — which the default style does. Use `saturating_sub` for the repeat counts so they clamp to 0 instead of underflowing. Added an integration test.
This commit is contained in:
1 parent
af1f53d9a9
commit
d28aa4a8b4
3 files changed
+29
-3
No files matched your search
@@ -22,6 +22,7 @@
|
||||
- Syntax highlighting for Python files using uv as script runner in shebang #3689 (@janlarres)
|
||||
|
||||
## Bugfixes
|
||||
- Fix `capacity overflow` panic when printing a snip separator at `--terminal-width=1` with multiple line ranges. Closes #3803, see #3804 (@leeewee)
|
||||
- Pass `--no-paging` to `bat` invocations inside the bash / zsh / fish / PowerShell shell completion scripts so that shell-level pager wiring (e.g. `LESSOPEN='|-bat -f -pp %s'`) cannot inject ANSI escape sequences into the completion candidates. Closes #3760 (@mvanhorn)
|
||||
- Quote filenames before substituting them into `$LESSOPEN` / `$LESSCLOSE` templates, preventing shell injection when a filename contains shell metacharacters, see #3726 (@curious-rabbit)
|
||||
- Fix `--list-themes` unconditionally probing the terminal via OSC 10/11 even when `--theme` was set to an explicit value, see #3700 (regression introduced in bc42149a). (@optimistiCli)
|
||||
|
||||
Reference in new issue
Block a user