>       % 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));
 

Reply via email to