diff options
author | Anton Kling <anton@kling.gg> | 2024-04-11 17:22:00 +0200 |
---|---|---|
committer | Anton Kling <anton@kling.gg> | 2024-04-11 17:23:39 +0200 |
commit | ca082f686fd2dc7ee6f0284421f6212d6d4acee8 (patch) | |
tree | 493b1047661174816f0d1d300952e40e2846b24b /kernel/fs/ext2.c | |
parent | e25a47fcc4db09ab9b845a691297da67243e6049 (diff) |
bug fixes
Diffstat (limited to 'kernel/fs/ext2.c')
-rw-r--r-- | kernel/fs/ext2.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/kernel/fs/ext2.c b/kernel/fs/ext2.c index e815e79..9a3560f 100644 --- a/kernel/fs/ext2.c +++ b/kernel/fs/ext2.c @@ -1,6 +1,7 @@ #include <assert.h> #include <fs/ext2.h> #include <fs/vfs.h> +#include <math.h> #include <string.h> #include <sys/stat.h> #include <typedefs.h> @@ -251,8 +252,8 @@ int ext2_read_dir(int dir_inode, u8 *buffer, size_t len, size_t offset) { u8 *p = (u8 *)&tmp_entry; size_t l = sizeof(struct dirent); - l = (len < l) ? len : l; - memcpy(buffer, p, l); + l = min(len - rc, l); + memcpy(buffer + rc, p, l); len -= l; rc += l; } |