]> git.armaanb.net Git - opendoas.git/blobdiff - doas.c
Merge doas.c 1.34 from OpenBSD CVS.
[opendoas.git] / doas.c
diff --git a/doas.c b/doas.c
index 9862520852a4bd1be6bf285e958820368aef7d6f..f0cbab295bfb265cc4c03f9bf2e4077c0e68d293 100644 (file)
--- a/doas.c
+++ b/doas.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: doas.c,v 1.32 2015/07/29 00:00:31 tedu Exp $ */
+/* $OpenBSD: doas.c,v 1.33 2015/07/30 17:04:33 tedu Exp $ */
 /*
  * Copyright (c) 2015 Ted Unangst <tedu@openbsd.org>
  *
@@ -45,9 +45,11 @@ arraylen(const char **arr)
 {
        size_t cnt = 0;
 
-       while (*arr) {
-               cnt++;
-               arr++;
+       if (arr) {
+               while (*arr) {
+                       cnt++;
+                       arr++;
+               }
        }
        return cnt;
 }
@@ -162,10 +164,7 @@ parseconfig(const char *filename, int checkperms)
 
        yyfp = fopen(filename, "r");
        if (!yyfp) {
-               if (checkperms)
-                       fprintf(stderr, "doas is not enabled.\n");
-               else
-                       warn("could not open config file");
+               warn("could not open config file");
                exit(1);
        }
 
@@ -333,6 +332,7 @@ main(int argc, char **argv, char **envp)
        int nflag = 0;
 
        uid = getuid();
+
        while ((ch = getopt(argc, argv, "C:nsu:")) != -1) {
                switch (ch) {
                case 'C':
@@ -362,7 +362,6 @@ main(int argc, char **argv, char **envp)
        } else if ((!sflag && !argc) || (sflag && argc))
                usage();
 
-       uid = getuid();
        pw = getpwuid(uid);
        if (!pw)
                err(1, "getpwuid failed");