Fix openmode O_EXEC check in namec() [7/7]
authorBarret Rhoden <brho@cs.berkeley.edu>
Tue, 22 Sep 2015 18:03:53 +0000 (14:03 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Mon, 28 Sep 2015 19:14:00 +0000 (15:14 -0400)
Leftover from the the assumption that '3' is the access mode and that
O_EXEC is exclusive with other access types, which it is not for us.
Maybe the latter is a bad idea, but I'm going with it for now.

kern/src/ns/chan.c

index f108f6c..8c00e6f 100644 (file)
@@ -1108,7 +1108,7 @@ NameError:
                goto NameError;
        }
 
-       if (amode == Aopen && (omode & 3) == OEXEC && (c->qid.type & QTDIR)) {
+       if ((amode == Aopen) && (omode & O_EXEC) && (c->qid.type & QTDIR)) {
                npath = e.ARRAY_SIZEs;
                error("cannot exec directory");
        }