]> git.cameronkatri.com Git - pw-darwin.git/blobdiff - libutil/_secure_path.c
Do not let pw.conf(5) or -M option affect creation of basehome, e.g., /home.
[pw-darwin.git] / libutil / _secure_path.c
index c27003c466618316f6d67e33e9db467d75a843f3..363378b0d6499d88e77c88624d2166466ccb190e 100644 (file)
  * 4. Absolutely no warranty of function or purpose is made by the authors.
  * 5. Modifications may be freely made to this file providing the above
  *    conditions are met.
- *
- * $FreeBSD$
  */
 
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
 
 #include <sys/types.h>
 #include <sys/stat.h>
-#include <syslog.h>
+
 #include <errno.h>
 #include <libutil.h>
+#include <stddef.h>
+#include <syslog.h>
 
 /*
  * Check for common security problems on a given path
  * It must be:
  * 1. A regular file, and exists
- * 2. Owned and writaable only by root (or given owner)
+ * 2. Owned and writable only by root (or given owner)
  * 3. Group ownership is given group or is non-group writable
  *
  * Returns:    -2 if file does not exist,
@@ -57,12 +59,12 @@ _secure_path(const char *path, uid_t uid, gid_t gid)
        msg = "%s: %s is not a regular file";
     else if (sb.st_mode & S_IWOTH)
        msg = "%s: %s is world writable";
-    else if (uid != -1 && sb.st_uid != uid && sb.st_uid != 0) {
+    else if ((int)uid != -1 && sb.st_uid != uid && sb.st_uid != 0) {
        if (uid == 0)
                msg = "%s: %s is not owned by root";
        else
                msg = "%s: %s is not owned by uid %d";
-    } else if (gid != -1 && sb.st_gid != gid && (sb.st_mode & S_IWGRP))
+    } else if ((int)gid != -1 && sb.st_gid != gid && (sb.st_mode & S_IWGRP))
        msg = "%s: %s is group writeable by non-authorised groups";
     else
        r = 0;