summaryrefslogtreecommitdiff
path: root/kernel/fs/vfs.c
diff options
context:
space:
mode:
authorAnton Kling <anton@kling.gg>2024-04-17 23:15:36 +0200
committerAnton Kling <anton@kling.gg>2024-04-17 23:15:36 +0200
commite8deee43bc0a8a9bf7664485bb0ce3b886189dae (patch)
treed6e2c2da813d2ca549cf512604d6560579dac2f4 /kernel/fs/vfs.c
parentb913a159103bedec035207fe4d84c9ad9c313517 (diff)
VFS/LibC: Fix small bugs
Diffstat (limited to 'kernel/fs/vfs.c')
-rw-r--r--kernel/fs/vfs.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/kernel/fs/vfs.c b/kernel/fs/vfs.c
index 8ae2b1f..bcc0ce5 100644
--- a/kernel/fs/vfs.c
+++ b/kernel/fs/vfs.c
@@ -9,6 +9,10 @@ vfs_mounts_t mounts[10];
int num_mounts = 0;
vfs_fd_t *get_vfs_fd(int fd, process_t *p) {
+ if (fd < 0) {
+ return NULL;
+ }
+
if (!p) {
p = current_task;
}
@@ -265,7 +269,7 @@ int vfs_open(const char *file, int flags, int mode) {
vfs_resolve_path(file, resolved_path);
vfs_inode_t *inode = vfs_internal_open(resolved_path);
if (0 == inode) {
- if (mode & O_CREAT) {
+ if (flags & O_CREAT) {
if (vfs_create_file(resolved_path)) {
klog("VFS: File created", LOG_NOTE);
return vfs_open(file, flags, mode);