=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/doas/doas.c,v retrieving revision 1.36 retrieving revision 1.37 diff -c -r1.36 -r1.37 *** src/usr.bin/doas/doas.c 2015/08/13 16:27:22 1.36 --- src/usr.bin/doas/doas.c 2015/08/20 18:42:11 1.37 *************** *** 1,4 **** ! /* $OpenBSD: doas.c,v 1.36 2015/08/13 16:27:22 espie Exp $ */ /* * Copyright (c) 2015 Ted Unangst * --- 1,4 ---- ! /* $OpenBSD: doas.c,v 1.37 2015/08/20 18:42:11 rzalamena Exp $ */ /* * Copyright (c) 2015 Ted Unangst * *************** *** 280,289 **** } static void __dead ! fail(void) { ! fprintf(stderr, "Permission denied\n"); ! exit(1); } static void __dead --- 280,289 ---- } static void __dead ! permfail(void) { ! errno = EPERM; ! err(1, NULL); } static void __dead *************** *** 401,407 **** (const char**)argv + 1)) { syslog(LOG_AUTHPRIV | LOG_NOTICE, "failed command for %s: %s", myname, cmdline); ! fail(); } if (!(rule->options & NOPASS)) { --- 401,407 ---- (const char**)argv + 1)) { syslog(LOG_AUTHPRIV | LOG_NOTICE, "failed command for %s: %s", myname, cmdline); ! permfail(); } if (!(rule->options & NOPASS)) { *************** *** 410,416 **** if (!auth_userokay(myname, NULL, NULL, NULL)) { syslog(LOG_AUTHPRIV | LOG_NOTICE, "failed password for %s", myname); ! fail(); } } envp = copyenv((const char **)envp, rule); --- 410,416 ---- if (!auth_userokay(myname, NULL, NULL, NULL)) { syslog(LOG_AUTHPRIV | LOG_NOTICE, "failed password for %s", myname); ! permfail(); } } envp = copyenv((const char **)envp, rule);