diff options
Diffstat (limited to 'fs')
-rw-r--r-- | fs/fs.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -910,6 +910,8 @@ loff_t lseek(int fildes, loff_t offset, int whence) case SEEK_SET: if (f->size != FILE_SIZE_STREAM && offset > f->size) goto out; + if (offset < 0) + goto out; pos = offset; break; case SEEK_CUR: @@ -918,9 +920,9 @@ loff_t lseek(int fildes, loff_t offset, int whence) pos = f->pos + offset; break; case SEEK_END: - if (offset) + if (offset > 0) goto out; - pos = f->size; + pos = f->size + offset; break; default: goto out; |