kitty/tools
z3rco b39f88c6a2 Fix multiple security vulnerabilities across C, Python, and Go code
Timing-safe comparisons:
- crypto.c: Replace memcmp with CRYPTO_memcmp for Secret equality,
  require equal lengths before comparing
- remote_control.py: Constant-time password lookup to avoid leaking
  valid passwords via dict hash timing
- file_transmission.py: Use hmac.compare_digest for bypass token
  comparison instead of ==

Memory safety:
- child-monitor.c: Fix inverted condition in write_to_peer that
  prevented memmove from ever executing on partial writes
- ibus_glfw.c: Null-terminate IBUS_ADDRESS copy to prevent string
  overread when strlen >= PATH_MAX
- x11_window.c: Add NULL checks after realloc in clipboard/DnD
  data handling (two sites)
- dnd.c: Cap accepted_mimes at 1MB to prevent unbounded growth,
  fix realloc to not lose the original pointer on failure
- png-reader.c: Cast to size_t before multiplication to prevent
  integer overflow on 32-bit platforms

Secrets hygiene:
- disk-cache.c: Zero encryption_key with explicit_bzero before free

Tar extraction hardening:
- tar.go: Validate hardlink targets against destination prefix to
  prevent writing outside extraction directory
- tar.go: Strip setuid/setgid/sticky bits from extracted files

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 16:10:46 +01:00
..
cli Modernize Go code 2026-03-21 08:41:47 +05:30
cmd Add option to generate 256 color palette from first 16 colors 2026-03-27 20:01:14 +05:30
config Refactor ShortcutTracker.Match() to respect AllowFallback priority order 2026-03-26 04:31:37 +00:00
crypto Rename go module from kitty -> github.com/kovidgoyal/kitty 2025-05-16 08:43:39 +05:30
disk_cache Add a clear cache action 2025-11-23 12:15:29 +05:30
fzf Move error handling code into its own library 2025-10-12 13:51:16 +05:30
highlight Move error handling code into its own library 2025-10-12 13:51:16 +05:30
icons Fix recursion into symlinks to dirs 2025-06-25 08:35:38 +05:30
ignorefiles Dont write to ~/.gitconfig in the tests 2025-11-13 18:50:42 +05:30
rsync Modernize Go code 2026-03-21 08:41:47 +05:30
simdstring ... 2026-03-12 13:48:20 +05:30
themes Rename pane → window title bar per reviewer feedback 2026-03-01 23:53:28 -05:00
tty Modernize Go code 2026-03-21 08:41:47 +05:30
tui tui/password: make lock emoji blink at 500ms via repeating timer 2026-04-01 02:51:40 +00:00
unicode_names Add support for Unicode 17 2025-10-18 09:59:53 +05:30
utils Fix multiple security vulnerabilities across C, Python, and Go code 2026-04-03 16:10:46 +01:00
vt run modernize 2025-11-11 17:09:37 +05:30
wcswidth Modernize Go code 2026-03-21 08:41:47 +05:30
README.rst

This folder contains library and utility code for the various "kittens". Small
terminal programs compiled statically for doing things like kitty remote
control, icat etc. These are often re-implementations of earlier kittens that
were written in Python.