chiark / gitweb /
checkpath.c, tmpdir.c: Use symbolic names for permission masks.
[checkpath] / checkpath.c
index 9c1508645e02933188401026947284dbaa064be2..12038dd7a266b9165baebb5e96c7226f72b02e55 100644 (file)
@@ -291,12 +291,12 @@ static unsigned sanity(const char *p, struct stat *st,
 
   if (S_ISDIR(st->st_mode) &&
       (!(f & SF_LAST) || (cp->cp_what & CP_STICKYOK)))
-    stickyok = 01000;
+    stickyok = S_ISVTX;
 
   /* --- Check for world-writability --- */
 
   if ((cp->cp_what & CP_WRWORLD) &&
-      (st->st_mode & (0002 | stickyok)) == 0002) {
+      (st->st_mode & (S_IWOTH | stickyok)) == S_IWOTH) {
     bad |= CP_WRWORLD;
     report(cp, CP_WRWORLD, 1, p, "** world writable **");
   }
@@ -304,7 +304,7 @@ static unsigned sanity(const char *p, struct stat *st,
   /* --- Check for group-writability --- */
 
   if ((cp->cp_what & (CP_WRGRP | CP_WROTHGRP)) &&
-      (st->st_mode & (0020 | stickyok)) == 0020) {
+      (st->st_mode & (S_IWGRP | stickyok)) == S_IWGRP) {
     b = CP_WRGRP;
 
     if (cp->cp_what & CP_WROTHGRP) {
@@ -464,7 +464,7 @@ unsigned checkpath(const char *p, const struct checkpath *cp)
     bad |= sanity(d.buf, &st, cp, ee ? 0 : SF_LAST);
 
     if (S_ISDIR(st.st_mode)) {
-      if (st.st_mode & 01000)
+      if (st.st_mode & S_ISVTX)
        sp->e_flags |= EF_STICKY;
       report(cp, CP_REPORT, 4, d.buf, "directory");
       continue;