mirror of
https://github.com/Mathewnd/Astral.git
synced 2026-10-31 06:28:22 +00:00
localsock: check for file permissions
This commit is contained in:
@@ -384,7 +384,7 @@ static int localsock_accept(socket_t *_server, socket_t *_clientconnection, sock
|
||||
return error;
|
||||
}
|
||||
|
||||
static int localsock_connect(socket_t *socket, sockaddr_t *addr, uintmax_t flags) {
|
||||
static int localsock_connect(socket_t *socket, sockaddr_t *addr, uintmax_t flags, cred_t *cred) {
|
||||
localsocket_t *localsocket = (localsocket_t *)socket;
|
||||
int error;
|
||||
vnode_t *refnode = NULL;
|
||||
@@ -416,6 +416,11 @@ static int localsock_connect(socket_t *socket, sockaddr_t *addr, uintmax_t flags
|
||||
goto leave;
|
||||
}
|
||||
|
||||
// and we have write access
|
||||
error = VOP_ACCESS(result, V_ACCESS_WRITE, cred);
|
||||
if (error)
|
||||
goto leave;
|
||||
|
||||
// and if it has a valid binding
|
||||
binding = result->socketbinding;
|
||||
if (binding == NULL) {
|
||||
|
||||
Reference in New Issue
Block a user