David Mandelberg d90a44f229 Fix buffer overflow when processing extended keys
If I run tmux under valgrind, then run this command, where
`/proc/5187/fd/0` is tmux's stdin:

```
printf '\e[00000000000000000000000000000000000000000000000000000000000000000' > /proc/5187/fd/0
```

I got this error:

```
==5189== Conditional jump or move depends on uninitialised value(s)
==5189==    at 0x484DC78: strlen (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==5189==    by 0x4A62451: _IO_str_init_static_internal (strops.c:41)
==5189==    by 0x4A2D3FD: _IO_strfile_read (strfile.h:90)
==5189==    by 0x4A2D3FD: __isoc23_sscanf (isoc23_sscanf.c:28)
==5189==    by 0x19BA81: tty_keys_extended_key (tty-keys.c:1072)
==5189==    by 0x19BA81: tty_keys_next (tty-keys.c:822)
==5189==    by 0x19D9E7: tty_read_callback (tty.c:192)
==5189==    by 0x48B7136: ??? (in /usr/lib/x86_64-linux-gnu/libevent_core-2.1.so.7.0.1)
==5189==    by 0x48B793E: event_base_loop (in /usr/lib/x86_64-linux-gnu/libevent_core-2.1.so.7.0.1)
==5189==    by 0x17A766: proc_loop (proc.c:213)
==5189==    by 0x18EEF3: server_start (server.c:253)
==5189==    by 0x12D872: client_connect (client.c:164)
==5189==    by 0x12D872: client_main (client.c:295)
==5189==    by 0x128307: main (tmux.c:537)
```

This commit fixes that.

Addresses #4421
2025-03-27 16:19:15 -04:00
2025-01-20 13:06:03 +00:00
2024-11-27 10:31:51 +00:00
2024-09-06 13:09:43 +01:00
2024-10-01 13:40:42 +01:00
2023-08-22 08:43:35 +01:00
2025-02-20 13:31:07 +00:00
2020-05-19 12:34:34 +01:00
2025-02-10 10:01:11 +00:00
2024-05-13 14:01:10 +01:00
2020-04-23 07:15:17 +01:00
2023-09-15 10:01:11 +01:00
2024-09-27 08:56:39 +01:00
2025-02-26 10:01:14 +00:00
2025-01-27 12:01:13 +00:00
2023-07-10 12:01:12 +01:00
2025-03-04 10:01:15 +00:00
2024-02-13 10:01:10 +00:00
2024-02-13 10:01:10 +00:00
2025-02-10 10:01:11 +00:00
2024-11-22 14:01:11 +00:00
2022-05-31 16:13:43 +00:00
2024-12-16 12:01:12 +00:00
2025-01-27 12:01:13 +00:00
2025-03-24 22:01:11 +00:00
2025-02-13 16:24:33 +00:00
2022-08-24 10:01:13 +01:00
2023-04-27 19:16:08 +01:00
2025-03-24 22:01:11 +00:00
2024-08-28 10:27:21 +01:00
2023-08-22 08:43:35 +01:00
2025-03-04 10:01:15 +00:00
2025-03-04 10:01:15 +00:00
2024-09-30 12:01:11 +01:00
2022-05-30 12:55:25 +00:00
2023-06-30 16:01:10 +01:00
2025-03-24 22:01:11 +00:00
2021-01-17 17:52:10 +00:00
2024-10-12 12:01:09 +01:00
2025-01-12 16:01:11 +00:00
2024-11-27 10:30:52 +00:00
2024-10-04 23:29:36 +01:00
2021-11-11 09:18:04 +00:00
2025-02-26 10:01:14 +00:00
2024-11-16 18:01:08 +00:00
2024-11-15 10:01:11 +00:00
2022-05-30 12:55:25 +00:00
2025-03-24 22:01:11 +00:00
2024-11-15 16:01:11 +00:00
2025-01-01 18:01:10 +00:00
2025-03-04 10:01:15 +00:00
2023-07-10 12:01:12 +01:00
2025-03-24 22:01:11 +00:00
2024-10-02 14:01:10 +01:00
2025-03-24 22:01:11 +00:00
2024-11-28 10:01:11 +00:00
2024-08-28 10:27:21 +01:00
2025-03-04 10:01:15 +00:00
2025-01-01 18:01:10 +00:00
2025-03-21 16:01:11 +00:00
2025-03-24 22:01:11 +00:00
2025-03-11 10:01:12 +00:00
2019-11-28 09:51:58 +00:00

Welcome to tmux!

tmux is a terminal multiplexer: it enables a number of terminals to be created,
accessed, and controlled from a single screen. tmux may be detached from a
screen and continue running in the background, then later reattached.

This release runs on OpenBSD, FreeBSD, NetBSD, Linux, macOS and Solaris.

* Dependencies

tmux depends on libevent 2.x, available from:

	https://github.com/libevent/libevent/releases/latest

It also depends on ncurses, available from:

	https://invisible-mirror.net/archives/ncurses/

To build tmux, a C compiler (for example gcc or clang), make, pkg-config and a
suitable yacc (yacc or bison) are needed.

* Installation

To build and install tmux from a release tarball, use:

	$ ./configure && make
	$ sudo make install

tmux can use the utempter library to update utmp(5), if it is installed - run
configure with --enable-utempter to enable this.

To get and build the latest from version control - note that this requires
autoconf, automake and pkg-config:

	$ git clone https://github.com/tmux/tmux.git
	$ cd tmux
	$ sh autogen.sh
	$ ./configure && make
	$ sudo make install

* Contributing

Bug reports, feature suggestions and especially code contributions are most
welcome. Please send by email to:

	tmux-users@googlegroups.com

Or open a GitHub issue or pull request.

* Documentation

For documentation on using tmux, see the tmux.1 manpage. View it from the
source tree with:

	$ nroff -mdoc tmux.1|less

A small example configuration is in example_tmux.conf.

Other documentation is available in the wiki:

	https://github.com/tmux/tmux/wiki

Also see the tmux FAQ at:

	https://github.com/tmux/tmux/wiki/FAQ

A bash(1) completion file is at:

	https://github.com/imomaliev/tmux-bash-completion

For debugging, run tmux with -v and -vv to generate server and client log files
in the current directory.

* Support

The tmux mailing list for general discussion and bug reports is:

	https://groups.google.com/forum/#!forum/tmux-users

Subscribe by sending an email to:

	tmux-users+subscribe@googlegroups.com

* License

This file and the CHANGES files are licensed under the ISC license. All other
files have a license and copyright notice at their start.
Description
No description provided
Readme 71 MiB
Languages
C 87.5%
Roff 7.1%
Shell 2.7%
Yacc 1.3%
M4 0.8%
Other 0.5%