Fix proxy multiplexing (-O proxy) bug
authordjm <djm@openbsd.org>
Thu, 25 Jul 2024 22:40:08 +0000 (22:40 +0000)
committerdjm <djm@openbsd.org>
Thu, 25 Jul 2024 22:40:08 +0000 (22:40 +0000)
commit116a8944a490266d80b3ac9f1b77caa153a87030
tree3f6eb98f5415a62a85a710f8fe2581d32740d5b9
parent5d846028a9eca01b9bd8717456d1ea7b2c68cf6f
Fix proxy multiplexing (-O proxy) bug

If a mux started with ControlPersist then later has a forwarding added using
mux proxy connection and the forwarding was used, then when the mux proxy
session terminates, the mux master process will send a channel close to the
server with a bad channel ID and crash the connection.

This was caused by my stupidly reusing c->remote_id for mux channel
associations when I should have just added another member to struct channel.

ok markus@
usr.bin/ssh/channels.c
usr.bin/ssh/channels.h
usr.bin/ssh/mux.c
usr.bin/ssh/nchan.c