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.

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");
++                      }
 +              }
 +      }
  

Reply via email to