summaryrefslogtreecommitdiff
path: root/kernel/fs
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/fs')
-rw-r--r--kernel/fs/shm.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/kernel/fs/shm.c b/kernel/fs/shm.c
index 45f16f4..57ec3c5 100644
--- a/kernel/fs/shm.c
+++ b/kernel/fs/shm.c
@@ -1,5 +1,6 @@
#include <assert.h>
#include <errno.h>
+#include <fcntl.h>
#include <fs/shm.h>
#include <fs/vfs.h>
#include <hashmap/hashmap.h>
@@ -82,6 +83,9 @@ int shm_open(const char *name, int oflag, mode_t mode) {
vfs_vm_object_t *internal_object =
hashmap_get_entry(shared_memory_objects, name);
if (!internal_object) {
+ if (!(oflag & O_CREAT)) {
+ return -ENOENT;
+ }
internal_object = kcalloc(1, sizeof(vfs_vm_object_t));
hashmap_add_entry(shared_memory_objects, name, internal_object, NULL, 0);
}