summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIan Moffett <ian@osmora.org>2025-10-07 15:38:33 -0400
committerIan Moffett <ian@osmora.org>2025-10-07 15:38:33 -0400
commit5e7d6cfb317d309e6547b55c1eccc9998e90a05c (patch)
tree8a88c7d6efaeed8bcb74ccbcffd94e64b54d4b44 /src
parent732d6c11f39cb3d9646f8077a1df2b453659ddaa (diff)
kern: filedes: Ignore unitialized vnodes
Signed-off-by: Ian Moffett <ian@osmora.org>
Diffstat (limited to 'src')
-rw-r--r--src/sys/os/os_filedes.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/src/sys/os/os_filedes.c b/src/sys/os/os_filedes.c
index 6fa3e5a..ad1de1f 100644
--- a/src/sys/os/os_filedes.c
+++ b/src/sys/os/os_filedes.c
@@ -135,19 +135,17 @@ fd_dup(struct proc *procp, int fd)
return NULL;
}
- /* We need the old vnode too */
- if (old->vp == NULL) {
- return NULL;
- }
-
/* Allocate an even newer file descriptor */
error = fd_alloc(procp, &new);
if (error != 0) {
return NULL;
}
- /* Grab a ref and copy */
- vnode_ref(old->vp);
+ /* Grab a ref if we can */
+ if (old->vp != NULL) {
+ vnode_ref(old->vp);
+ }
+
new->mode = old->mode;
new->vp = old->vp;
return new;