]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/listensocket.cpp
Validate the exemptchanops parameter better and check permissions.
[user/henk/code/inspircd.git] / src / listensocket.cpp
index 60ee0b449c0d24ef3c1b1452a78f7c23009aa3e3..811c6c8aca33ce496a6ceadf71a625d3596549ed 100644 (file)
@@ -66,6 +66,14 @@ ListenSocket::ListenSocket(ConfigTag* tag, const irc::sockets::sockaddrs& bind_t
 #endif
        }
 
+       if (bind_to.family() == AF_UNIX)
+       {
+               const std::string permissionstr = tag->getString("permissions");
+               unsigned int permissions = strtoul(permissionstr.c_str(), NULL, 8);
+               if (permissions && permissions <= 07777)
+                       chmod(bind_to.str().c_str(), permissions);
+       }
+
        SocketEngine::SetReuse(fd);
        int rv = SocketEngine::Bind(this->fd, bind_to);
        if (rv >= 0)