Hi, Accidentally relayd(8) closes file descriptor 0 in the pfe child process. Usually this is a bad idea.
snmp_init() does this: if (env->sc_snmp != -1) { ... close(env->sc_snmp); env->sc_snmp = -1; } But env has been initialized with 0 by calloc(3). It has to be set to -1 to make the logic work. ok? bluhm Index: usr.sbin/relayd/relayd.c =================================================================== RCS file: /data/mirror/openbsd/cvs/src/usr.sbin/relayd/relayd.c,v retrieving revision 1.172 diff -u -p -r1.172 relayd.c --- usr.sbin/relayd/relayd.c 6 Aug 2018 17:31:31 -0000 1.172 +++ usr.sbin/relayd/relayd.c 31 Aug 2018 22:10:25 -0000 @@ -184,6 +184,7 @@ main(int argc, char *argv[]) TAILQ_INIT(&env->sc_hosts); TAILQ_INIT(&env->sc_sessions); env->sc_rtable = getrtable(); + env->sc_snmp = -1; /* initialize the TLS session id to a random key for all relay procs */ arc4random_buf(env->sc_conf.tls_sid, sizeof(env->sc_conf.tls_sid));