=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/doas/doas.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- src/usr.bin/doas/doas.c 2015/07/21 11:04:06 1.15 +++ src/usr.bin/doas/doas.c 2015/07/21 16:12:04 1.16 @@ -1,4 +1,4 @@ -/* $OpenBSD: doas.c,v 1.15 2015/07/21 11:04:06 zhuk Exp $ */ +/* $OpenBSD: doas.c,v 1.16 2015/07/21 16:12:04 tedu Exp $ */ /* * Copyright (c) 2015 Ted Unangst * @@ -294,10 +294,12 @@ int i, ch; int sflag = 0; - parseconfig("/etc/doas.conf"); - - while ((ch = getopt(argc, argv, "su:")) != -1) { + while ((ch = getopt(argc, argv, "C:su:")) != -1) { switch (ch) { + case 'C': + setuid(getuid()); + parseconfig(optarg); + exit(0); case 'u': if (parseuid(optarg, &target) != 0) errx(1, "unknown user"); @@ -315,6 +317,8 @@ if ((!sflag && !argc) || (sflag && argc)) usage(); + + parseconfig("/etc/doas.conf"); uid = getuid(); pw = getpwuid(uid);