& has lower precedence than ==, so this seems to be not what was
intended (the condition is always false):
===================================================================
RCS file: /cvs/src/bin/mkdir/mkdir.c,v
retrieving revision 1.28
diff -u -p -r1.28 mkdir.c
--- mkdir.c 10 Oct 2015 20:18:30 -0000 1.28
+++ mkdir.c 23 Oct 2015 00:03:31 -0000
@@ -82,7 +82,7 @@ main(int argc, char *argv[])
argc -= optind;
argv += optind;
- if (mode & (S_ISUID | S_ISGID | S_ISTXT) == 0) {
+ if ((mode & (S_ISUID | S_ISGID | S_ISTXT)) == 0) {
if (pledge("stdio rpath cpath fattr", NULL) == -1)
err(1, "pledge");
}