diff options
| author | Gustav Sörnäs <gustav@sornas.net> | 2021-03-15 11:53:13 +0100 |
|---|---|---|
| committer | Gustav Sörnäs <gustav@sornas.net> | 2021-03-15 11:53:13 +0100 |
| commit | 537ebaccb88baa3a40c392716d33482b3ef1641b (patch) | |
| tree | 9caac9527d75e174c2a72d1ae843e6c43a9083bf /src/filesys | |
| parent | 978506ef525e7901b62602180969e9d5a8452ba4 (diff) | |
| download | pintos-537ebaccb88baa3a40c392716d33482b3ef1641b.tar.gz | |
dont seek past eof
Diffstat (limited to 'src/filesys')
| -rw-r--r-- | src/filesys/file.c | 7 |
1 files changed, 6 insertions, 1 deletions
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 |
