diff --git a/src/system/kernel/fs/vfs.cpp b/src/system/kernel/fs/vfs.cpp index 51137e6e85..9acaf3b98e 100644 --- a/src/system/kernel/fs/vfs.cpp +++ b/src/system/kernel/fs/vfs.cpp @@ -5563,6 +5563,10 @@ fix_dirent(struct vnode* parent, struct dirent* userEntry, ASSERT(entry->d_reclen >= sizeof(struct dirent)); + // This hints to a problem in the file system implementation + if (entry->d_reclen < sizeof(struct dirent)) + return B_BAD_DATA; + if (user_memcpy(entry->d_name, userEntry->d_name, entry->d_reclen + 1 - sizeof(struct dirent)) != B_OK) return B_BAD_ADDRESS;