ref: eb3d055eb376cb930a15ea85f594185f754223e9
parent: 5149f204b78b7969c0cb865ff376fc21a2c50297
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Tue Dec 8 20:04:03 EST 2020
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.
--- a/sys/src/libauth/auth_chuid.c
+++ b/sys/src/libauth/auth_chuid.c
@@ -29,7 +29,7 @@
}
/* 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);
--- a/sys/src/libauth/newns.c
+++ b/sys/src/libauth/newns.c
@@ -194,7 +194,7 @@
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]);
--- a/sys/src/libc/9sys/access.c
+++ b/sys/src/libc/9sys/access.c
@@ -24,7 +24,7 @@
return 0;
return -1;
}
- fd = open(name, omode[mode&7]|OCEXEC);
+ fd = open(name, omode[mode&7]);
if(fd >= 0){
close(fd);
return 0;
--- a/sys/src/libdraw/newwindow.c
+++ b/sys/src/libdraw/newwindow.c
@@ -13,7 +13,7 @@
wsys = getenv("wsys");
if(wsys == nil)
return -1;
- fd = open(wsys, ORDWR|OCEXEC);
+ fd = open(wsys, ORDWR);
if(fd < 0){
free(wsys);
return -1;