n 06/21/17 12:16, Ricardo Mestre wrote:
> Hi,
> 
> I can confirm this issue, and the diff below seems to solve it for me.
> 
> Could you please test it and let us know if it works on your side?

It does fix the issue. Thanks you.

> 
> Reason: In clientloop.c during client_loop() this function calls
> client_simple_escape_filter() which then calls process_escapes() which in turn
> fork()s the process. That being said, the pledge inside client_loop which
> applies to this code path lacks the proc promise and therefore aborts ssh.
> 
> Index: clientloop.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/ssh/clientloop.c,v
> retrieving revision 1.299
> diff -u -p -u -r1.299 clientloop.c
> --- clientloop.c      31 May 2017 09:15:42 -0000      1.299
> +++ clientloop.c      21 Jun 2017 10:14:26 -0000
> @@ -1246,7 +1246,7 @@ client_loop(int have_pty, int escape_cha
>  
>       } else {
>               debug("pledge: network");
> -             if (pledge("stdio unix inet dns tty", NULL) == -1)
> +             if (pledge("stdio unix inet dns proc tty", NULL) == -1)
>                       fatal("%s pledge(): %s", __func__, strerror(errno));
>       }
> 
> 

Reply via email to