> % cat ~/.ssh/config
> Host *
> ControlMaster auto
> ControlPath ~/.ssh/control-%r@%h:%p
> ControlPersist 1
>
[...]
> Now running ssh(1) dumps the core:
Thanks for the report. The problem is a stricter handling of the recvfd
pledge promise that is tested in the latest snapshots.
> debug1: Entering interactive session.
> debug1: pledge: id
> debug1: multiplexing control connection
> debug1: channel 1: new [mux-control]
> mux_client_request_session: read from master failed: Broken pipe
> Failed to connect to new control master
The "pledge: id" debug line above points to the problematic pledge call.
The following patch should fix this in the next snapshot.
Index: clientloop.c
===================================================================
RCS file: /var/cvs/src/usr.bin/ssh/clientloop.c,v
retrieving revision 1.284
diff -u -p -r1.284 clientloop.c
--- clientloop.c 8 Feb 2016 10:57:07 -0000 1.284
+++ clientloop.c 11 Jul 2016 20:37:31 -0000
@@ -1500,7 +1500,7 @@ client_loop(int have_pty, int escape_cha
if (options.control_master &&
! option_clear_or_none(options.control_path)) {
debug("pledge: id");
- if (pledge("stdio rpath wpath cpath unix inet dns proc exec id
tty",
+ if (pledge("stdio rpath wpath cpath unix inet dns recvfd proc
exec id tty",
NULL) == -1)
fatal("%s pledge(): %s", __func__, strerror(errno));