From 537ebaccb88baa3a40c392716d33482b3ef1641b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustav=20S=C3=B6rn=C3=A4s?= Date: Mon, 15 Mar 2021 11:53:13 +0100 Subject: dont seek past eof --- src/filesys/file.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/filesys') diff --git a/src/filesys/file.c b/src/filesys/file.c index d5fc10d..238806a 100644 --- a/src/filesys/file.c +++ b/src/filesys/file.c @@ -155,7 +155,12 @@ file_seek (struct file *file, off_t new_pos) { ASSERT (file != NULL); ASSERT (new_pos >= 0); - file->pos = new_pos; + off_t size = inode_length (file->inode); + if (new_pos < size) { + file->pos = new_pos; + } else { + file->pos = size; + } } /* Returns the current position in FILE as a byte offset from the -- cgit v1.2.1