summaryrefslogtreecommitdiffstats
path: root/sbin/devd
diff options
context:
space:
mode:
authormarcus <marcus@FreeBSD.org>2005-07-13 17:28:11 +0000
committermarcus <marcus@FreeBSD.org>2005-07-13 17:28:11 +0000
commit5b352640f8efaf44f5f7d243077931d85c964697 (patch)
tree69cc5417a83055b8f3ae03d914329fd320e074cb /sbin/devd
parent087a48f8855ca2a0d166722151f081102d04ee4e (diff)
downloadFreeBSD-src-5b352640f8efaf44f5f7d243077931d85c964697.zip
FreeBSD-src-5b352640f8efaf44f5f7d243077931d85c964697.tar.gz
* Open permissions on /var/run/devd.pipe so that any user can read devd events
from this socket * Enable non-blocking I/O on devd.pipe to keep clients from wedging devd. If a write(2) on devd.pipe would block, the client in question will be removed [1] Requested by: rwatson [1] Approved by: imp
Diffstat (limited to 'sbin/devd')
-rw-r--r--sbin/devd/devd.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/sbin/devd/devd.cc b/sbin/devd/devd.cc
index 9101ecf..ad3ef43 100644
--- a/sbin/devd/devd.cc
+++ b/sbin/devd/devd.cc
@@ -672,11 +672,13 @@ create_socket(const char *name)
strlcpy(sun.sun_path, name, sizeof(sun.sun_path));
slen = SUN_LEN(&sun);
unlink(name);
+ if (fcntl(fd, F_SETFL, O_NONBLOCK) < 0)
+ err(1, "fcntl");
if (bind(fd, (struct sockaddr *) & sun, slen) < 0)
err(1, "bind");
listen(fd, 4);
chown(name, 0, 0); /* XXX - root.wheel */
- chmod(name, 0660);
+ chmod(name, 0666);
return (fd);
}
OpenPOWER on IntegriCloud