diff options
author | Ian Moffett <ian@osmora.org> | 2025-10-07 15:38:33 -0400 |
---|---|---|
committer | Ian Moffett <ian@osmora.org> | 2025-10-07 15:38:33 -0400 |
commit | 5e7d6cfb317d309e6547b55c1eccc9998e90a05c (patch) | |
tree | 8a88c7d6efaeed8bcb74ccbcffd94e64b54d4b44 /src/sys/os/os_filedes.c | |
parent | 732d6c11f39cb3d9646f8077a1df2b453659ddaa (diff) |
kern: filedes: Ignore unitialized vnodes
Signed-off-by: Ian Moffett <ian@osmora.org>
Diffstat (limited to 'src/sys/os/os_filedes.c')
-rw-r--r-- | src/sys/os/os_filedes.c | 12 |
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; |