=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/mail/popen.c,v retrieving revision 1.22 retrieving revision 1.23 diff -c -r1.22 -r1.23 *** src/usr.bin/mail/popen.c 1998/09/10 16:18:37 1.22 --- src/usr.bin/mail/popen.c 1998/09/27 21:16:42 1.23 *************** *** 1,4 **** ! /* $OpenBSD: popen.c,v 1.22 1998/09/10 16:18:37 millert Exp $ */ /* $NetBSD: popen.c,v 1.6 1997/05/13 06:48:42 mikel Exp $ */ /* --- 1,4 ---- ! /* $OpenBSD: popen.c,v 1.23 1998/09/27 21:16:42 millert Exp $ */ /* $NetBSD: popen.c,v 1.6 1997/05/13 06:48:42 mikel Exp $ */ /* *************** *** 38,44 **** #if 0 static char sccsid[] = "@(#)popen.c 8.1 (Berkeley) 6/6/93"; #else ! static char rcsid[] = "$OpenBSD: popen.c,v 1.22 1998/09/10 16:18:37 millert Exp $"; #endif #endif /* not lint */ --- 38,44 ---- #if 0 static char sccsid[] = "@(#)popen.c 8.1 (Berkeley) 6/6/93"; #else ! static char rcsid[] = "$OpenBSD: popen.c,v 1.23 1998/09/27 21:16:42 millert Exp $"; #endif #endif /* not lint */ *************** *** 451,463 **** (void)Pclose(lockfp); lockfp = NULL; } else if (action == 1) { /* Create the lock */ ! if ((lockfp = Popen(_PATH_LOCKSPOOL, "r")) == NULL || ! getc(lockfp) != '1') { lockfp = NULL; return(0); } - lock_pid = fp_head->pid; /* new entries added at head */ } else { (void)fprintf(stderr, "handle_spool_locks: unknown action %d\n", --- 451,471 ---- (void)Pclose(lockfp); lockfp = NULL; } else if (action == 1) { + char *cmd = _PATH_LOCKSPOOL; + + /* XXX - lockspool requires root for user arg, we do not */ + if (uflag && asprintf(&cmd, "%s %s", _PATH_LOCKSPOOL, + myname) == -1) + errx(1, "Out of memory"); + /* Create the lock */ ! lockfp = Popen(cmd, "r"); ! if (uflag) ! free(cmd); ! if (lockfp == NULL || getc(lockfp) != '1') { lockfp = NULL; return(0); } lock_pid = fp_head->pid; /* new entries added at head */ } else { (void)fprintf(stderr, "handle_spool_locks: unknown action %d\n",