On Fri, May 18 2018, Klemens Nanni <k...@openbsd.org> wrote:
> If neither `Pass' nor `PassCmd' is specified in the configuration,
> mbsync(1) prompts for the IMAP password.
>
> This diff adds the missing "tty" promise in such cases.
>
> OK?
>
> PS: Noone complaint so far.

I understand that getting rid of "proc exec" is appealing, but could you
just add "tty" here?

> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/mail/isync/Makefile,v
> retrieving revision 1.35
> diff -u -p -r1.35 Makefile
> --- Makefile  12 May 2018 14:37:36 -0000      1.35
> +++ Makefile  18 May 2018 20:41:45 -0000
> @@ -3,7 +3,7 @@
>  COMMENT=     synchronize IMAP4 and maildir mailboxes
>  
>  DISTNAME=    isync-1.3.0
> -REVISION=    1
> +REVISION=    2
>  
>  CATEGORIES=  mail
>  MASTER_SITES=        ${MASTER_SITE_SOURCEFORGE:=isync/}
> Index: patches/patch-src_drv_imap_c
> ===================================================================
> RCS file: /cvs/ports/mail/isync/patches/patch-src_drv_imap_c,v
> retrieving revision 1.1
> diff -u -p -r1.1 patch-src_drv_imap_c
> --- patches/patch-src_drv_imap_c      8 May 2018 22:07:42 -0000       1.1
> +++ patches/patch-src_drv_imap_c      18 May 2018 19:20:51 -0000
> @@ -3,21 +3,24 @@ $OpenBSD: patch-src_drv_imap_c,v 1.1 201
>  Index: src/drv_imap.c
>  --- src/drv_imap.c.orig
>  +++ src/drv_imap.c
> -@@ -41,6 +41,8 @@
> +@@ -41,6 +41,9 @@
>   # include <sasl/saslutil.h>
>   #endif
>   
>  +extern int needs_proc_exec;
> ++extern int needs_tty;
>  +
>   #ifdef HAVE_LIBSSL
>   enum { SSL_None, SSL_STARTTLS, SSL_IMAPS };
>   #endif
> -@@ -3267,6 +3269,8 @@ imap_parse_store( conffile_t *cfg, store_conf_t **stor
> +@@ -3267,6 +3270,10 @@ imap_parse_store( conffile_t *cfg, store_conf_t **stor
>               }
>               acc_opt = 1;
>       }
>  +    if (server->sconf.tunnel || server->pass_cmd)
>  +            needs_proc_exec = 1;
> ++    if (!(server->pass || server->pass_cmd))
> ++            needs_tty = 1;
>       if (store)
>               type = "IMAP store", name = store->gen.name;
>       else
> Index: patches/patch-src_main_c
> ===================================================================
> RCS file: /cvs/ports/mail/isync/patches/patch-src_main_c,v
> retrieving revision 1.3
> diff -u -p -r1.3 patch-src_main_c
> --- patches/patch-src_main_c  8 May 2018 22:07:42 -0000       1.3
> +++ patches/patch-src_main_c  18 May 2018 20:29:01 -0000
> @@ -3,40 +3,64 @@ $OpenBSD: patch-src_main_c,v 1.3 2018/05
>  Index: src/main.c
>  --- src/main.c.orig
>  +++ src/main.c
> -@@ -120,6 +120,8 @@ PACKAGE " " VERSION " - mailbox synchronizer\n"
> +@@ -120,6 +120,9 @@ PACKAGE " " VERSION " - mailbox synchronizer\n"
>       exit( code );
>   }
>   
>  +int needs_proc_exec = 0;
> ++int needs_tty = 0;
>  +
>   static void ATTR_PRINTFLIKE(1, 2)
>   debug( const char *msg, ... )
>   {
> -@@ -716,6 +718,29 @@ main( int argc, char **argv )
> +@@ -716,6 +719,52 @@ main( int argc, char **argv )
>   
>       if (load_config( config, pseudo ))
>               return 1;
>  +
>  +    if (mvars->list) {
>  +            if (needs_proc_exec) {
> -+                    if (pledge("stdio rpath inet flock dns getpw proc exec"
> -+                        " prot_exec", NULL) == -1)
> -+                            sys_error("pledge\n");
> ++                    if (needs_tty) {
> ++                            if (pledge("stdio rpath inet flock dns getpw"
> ++                                " tty proc exec prot_exec", NULL) == -1)
> ++                                    sys_error("pledge\n");
> ++                    } else {
> ++                            if (pledge("stdio rpath inet flock dns getpw"
> ++                                " proc exec prot_exec", NULL) == -1)
> ++                                    sys_error("pledge\n");
> ++                    }
>  +            } else {
> -+                    if (pledge("stdio rpath inet flock dns getpw"
> -+                        " prot_exec",
> -+                        NULL) == -1)
> -+                            sys_error("pledge\n");
> ++                    if (needs_tty) {
> ++                            if (pledge("stdio rpath inet flock dns getpw"
> ++                                " tty prot_exec", NULL) == -1)
> ++                                    sys_error("pledge\n");
> ++                    } else {
> ++                            if (pledge("stdio rpath inet flock dns getpw"
> ++                                " prot_exec", NULL) == -1)
> ++                                    sys_error("pledge\n");
> ++                    }
>  +            }
>  +    } else {
>  +            if (needs_proc_exec) {
> -+                    if (pledge("stdio rpath wpath cpath inet flock dns"
> -+                        " getpw proc exec prot_exec", NULL) == -1)
> -+                            sys_error("pledge\n");
> ++                    if (needs_tty) {
> ++                            if (pledge("stdio rpath wpath cpath inet flock"
> ++                                " dns getpw tty proc exec prot_exec", NULL) 
> == -1)
> ++                                    sys_error("pledge\n");
> ++                    } else {
> ++                            if (pledge("stdio rpath wpath cpath inet flock"
> ++                                " dns getpw proc exec prot_exec", NULL) == 
> -1)
> ++                                    sys_error("pledge\n");
> ++                    }
>  +            } else {
> -+                    if (pledge("stdio rpath wpath cpath inet flock dns"
> -+                        " getpw prot_exec", NULL) == -1)
> -+                            sys_error("pledge\n");
> ++                    if (needs_tty) {
> ++                            if (pledge("stdio rpath wpath cpath inet flock"
> ++                                " dns getpw tty prot_exec", NULL) == -1)
> ++                                    sys_error("pledge\n");
> ++                    } else {
> ++                            if (pledge("stdio rpath wpath cpath inet flock"
> ++                                " dns getpw prot_exec", NULL) == -1)
> ++                                    sys_error("pledge\n");
> ++                    }
>  +            }
>  +    }
>   
>

-- 
jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF  DDCC 0DFA 74AE 1524 E7EE

Reply via email to