From eb3d055eb376cb930a15ea85f594185f754223e9 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Wed, 9 Dec 2020 01:04:03 +0100 Subject: backout OCEXEC changes when potentially opening /srv files Opening a /srv file sets the close-on-exec flag on the shared channel breaking the exportfs openmount() hack. The devsrv tries to prevent posting a channel with the close-on-exec or remove-on-close flags. but nothing currently prevents this poisoning on open. Until this gets fixed in eigther exportfs or devsrv, i'll back out the changes that could have potential side effects like this. --- sys/src/libauth/auth_chuid.c | 2 +- sys/src/libauth/newns.c | 2 +- sys/src/libc/9sys/access.c | 2 +- sys/src/libdraw/newwindow.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) (limited to 'sys/src') diff --git a/sys/src/libauth/auth_chuid.c b/sys/src/libauth/auth_chuid.c index 6b3819e86..4703ea000 100644 --- a/sys/src/libauth/auth_chuid.c +++ b/sys/src/libauth/auth_chuid.c @@ -29,7 +29,7 @@ auth_chuid(AuthInfo *ai, char *ns) } /* get a link to factotum as new user */ - fd = open("/srv/factotum", ORDWR|OCEXEC); + fd = open("/srv/factotum", ORDWR); if(fd >= 0){ if(mount(fd, -1, "/mnt", MREPL, "") == -1) close(fd); diff --git a/sys/src/libauth/newns.c b/sys/src/libauth/newns.c index 91bf5f802..c0f866b9b 100644 --- a/sys/src/libauth/newns.c +++ b/sys/src/libauth/newns.c @@ -194,7 +194,7 @@ nsop(char *fn, int argc, char *argv[], AuthRpc *rpc) else if(argc == 2) unmount(argv[0], argv[1]); }else if(strcmp(argv0, "mount") == 0){ - fd = open(argv[0], ORDWR|OCEXEC); + fd = open(argv[0], ORDWR); if(fd < 0){ if(newnsdebug) fprint(2, "%s: mount: %s: %r\n", fn, argv[0]); diff --git a/sys/src/libc/9sys/access.c b/sys/src/libc/9sys/access.c index 86e459955..c9fee3432 100644 --- a/sys/src/libc/9sys/access.c +++ b/sys/src/libc/9sys/access.c @@ -24,7 +24,7 @@ access(char *name, int mode) return 0; return -1; } - fd = open(name, omode[mode&7]|OCEXEC); + fd = open(name, omode[mode&7]); if(fd >= 0){ close(fd); return 0; diff --git a/sys/src/libdraw/newwindow.c b/sys/src/libdraw/newwindow.c index 73306be03..2fb708bef 100644 --- a/sys/src/libdraw/newwindow.c +++ b/sys/src/libdraw/newwindow.c @@ -13,7 +13,7 @@ newwindow(char *str) wsys = getenv("wsys"); if(wsys == nil) return -1; - fd = open(wsys, ORDWR|OCEXEC); + fd = open(wsys, ORDWR); if(fd < 0){ free(wsys); return -1; -- cgit v1.2.3