|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Minios-devel] [UNIKRAFT VFS PATCH v2 2/4] Check for NULL reference on vfscore_put_fd()
Since we can allocate a fd without assigning a
vfscore_file we must protect against NULL pointers.
An example is the LWIP sock_fd_alloc function from sockets.c
which firstly reserves a file descriptor by calling vfscore_alloc_fd
and, on failure, calls vfscore_put_fd. But the failure might occur
before associating an actual vfscore_file with the fd.
Signed-off-by: Mihai Pogonaru <pogonarumihai@xxxxxxxxx>
---
lib/vfscore/fd.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/lib/vfscore/fd.c b/lib/vfscore/fd.c
index f8b24020..01025a46 100644
--- a/lib/vfscore/fd.c
+++ b/lib/vfscore/fd.c
@@ -88,7 +88,12 @@ void vfscore_put_fd(int fd)
fdtable.files[fd] = NULL;
ukplat_lcpu_restore_irqf(flags);
- fdrop(fp);
+ /*
+ * Since we can alloc a fd without assigning a
+ * vfsfile we must protect against NULL ptr
+ */
+ if (fp)
+ fdrop(fp);
}
int vfscore_install_fd(int fd, struct vfscore_file *file)
--
2.11.0
_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |