On Sat, Jul 20, 2019 at 12:03:03AM +0200, Jesper Wallin wrote: > On Fri, Jul 19, 2019 at 05:14:03PM -0400, Bryan Steele wrote: > > I suspect that in secure/-S mode, the :pre[serve] should either be > > disabled, or modified to stop calling sendmail. The mail it is sending > > is purely advisory, and should be easy to disable. See common/recover.c. > > Oh, you're right. A bit ironic that I didn't notice the exec violation > due to the fork being permitted now. Thanks for pointing this out! > > Scrap my old patch, here's a better proposal: > > > Index: common/recover.c > =================================================================== > RCS file: /cvs/src/usr.bin/vi/common/recover.c,v > retrieving revision 1.29 > diff -u -p -r1.29 recover.c > --- common/recover.c 10 Nov 2017 18:25:48 -0000 1.29 > +++ common/recover.c 19 Jul 2019 21:57:16 -0000 > @@ -264,7 +264,7 @@ rcv_sync(SCR *sp, u_int flags) > F_SET(ep, F_RCV_NORM); > > /* REQUEST: send email. */ > - if (LF_ISSET(RCV_EMAIL)) > + if (O_ISSET(sp, O_SECURE) == 0 && LF_ISSET(RCV_EMAIL)) > rcv_email(sp, ep->rcv_fd); > } > > @@ -289,7 +289,8 @@ rcv_sync(SCR *sp, u_int flags) > sp->gp->scr_busy(sp, > "Copying file for recovery...", BUSY_ON); > if (rcv_copy(sp, fd, ep->rcv_path) || > - close(fd) || rcv_mailfile(sp, 1, buf)) { > + close(fd) || (O_ISSET(sp, O_SECURE) == 0 && > + rcv_mailfile(sp, 1, buf))) { > (void)unlink(buf); > (void)close(fd); > rval = 1;
ok brynet@