$OpenBSD: patch-src_main_c,v 1.10 2021/03/13 14:20:55 kn Exp $

Use pledge.

Index: src/main.c
--- src/main.c.orig
+++ src/main.c
@@ -125,6 +125,8 @@ PACKAGE " " VERSION " - mailbox synchronizer\n"
 	exit( code );
 }
 
+int needs_proc_exec = 0;
+
 static void ATTR_PRINTFLIKE(1, 2)
 debug( const char *msg, ... )
 {
@@ -757,6 +759,36 @@ main( int argc, char **argv )
 
 	if (load_config( config ))
 		return 1;
+
+	if (mvars->list) {
+		if (needs_proc_exec) {
+			if (pledge("stdio rpath inet flock dns getpw tty"
+			    " proc exec prot_exec", NULL) == -1) {
+				sys_error("pledge\n");
+				exit(1);
+			}
+		} else {
+			if (pledge("stdio rpath inet flock dns getpw tty"
+			    " prot_exec", NULL) == -1) {
+				sys_error("pledge\n");
+				exit(1);
+			}
+		}
+	} else {
+		if (needs_proc_exec) {
+			if (pledge("stdio rpath wpath cpath inet fattr flock"
+			    " dns getpw tty proc exec prot_exec", NULL) == -1) {
+				sys_error("pledge\n");
+				exit(1);
+			}
+		} else {
+			if (pledge("stdio rpath wpath cpath inet fattr flock"
+			    " dns getpw tty prot_exec", NULL) == -1) {
+				sys_error("pledge\n");
+				exit(1);
+			}
+		}
+	}
 
 	if (!channels) {
 		fputs( "No channels defined. Try 'man " EXE "'\n", stderr );
