summaryrefslogtreecommitdiff
path: root/sys/kern/kern_socket.c
diff options
context:
space:
mode:
authorIan Moffett <ian@osmora.org>2025-07-31 15:44:41 -0400
committerIan Moffett <ian@osmora.org>2025-07-31 15:55:21 -0400
commit5ae5b4259d3d4894c3f5acc5f0691869a3bd219f (patch)
treed9148523db395c2e424187fa14fb5c38c8e86aee /sys/kern/kern_socket.c
parent8185d0507429f0c6e2b90c2cc6c8f413ebf49aad (diff)
kernel: socket: Keep track of socket owner
Keep track of the process that created a socket. Signed-off-by: Ian Moffett <ian@osmora.org>
Diffstat (limited to 'sys/kern/kern_socket.c')
-rw-r--r--sys/kern/kern_socket.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/kern/kern_socket.c b/sys/kern/kern_socket.c
index 77041cd..91a2347 100644
--- a/sys/kern/kern_socket.c
+++ b/sys/kern/kern_socket.c
@@ -30,6 +30,7 @@
#include <sys/socket.h>
#include <sys/sio.h>
#include <sys/systm.h>
+#include <sys/proc.h>
#include <sys/errno.h>
#include <sys/syslog.h>
#include <sys/filedesc.h>
@@ -322,6 +323,7 @@ fail:
int
bind(int sockfd, const struct sockaddr *addr, socklen_t len)
{
+ struct proc *td;
struct ksocket *ksock;
struct cmsg_list *clp;
int error;
@@ -337,6 +339,10 @@ bind(int sockfd, const struct sockaddr *addr, socklen_t len)
return -ENOMEM;
}
+ /* Mark ourselves as the owner */
+ td = this_td();
+ ksock->owner = td;
+
/* Initialize the cmsg list queue */
clp = &ksock->cmsg_list;
TAILQ_INIT(&clp->list);