projects
/
linux-block.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
2b2b1a2
)
filemap: filemap_read() should check that the offset is positive or zero
author
Trond Myklebust
<trond.myklebust@hammerspace.com>
Fri, 13 Sep 2024 20:04:18 +0000
(16:04 -0400)
committer
Christian Brauner
<brauner@kernel.org>
Wed, 2 Oct 2024 05:52:12 +0000
(07:52 +0200)
We do check that the read offset is less than the filesystem limit,
however for good measure we should also check that it is positive or
zero, and return EINVAL if that is not the case.
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Link:
https://lore.kernel.org/r/482ee0b8a30b62324adb9f7c551a99926f037393.1726257832.git.trond.myklebust@hammerspace.com
Signed-off-by: Christian Brauner <brauner@kernel.org>
mm/filemap.c
patch
|
blob
|
blame
|
history
diff --git
a/mm/filemap.c
b/mm/filemap.c
index 36d22968be9a1e10da42927dd627d3f22c3a747b..82aa94d2b709bff99ffa42dc40aaef0fe3784b14 100644
(file)
--- a/
mm/filemap.c
+++ b/
mm/filemap.c
@@
-2620,6
+2620,8
@@
ssize_t filemap_read(struct kiocb *iocb, struct iov_iter *iter,
loff_t isize, end_offset;
loff_t last_pos = ra->prev_pos;
+ if (unlikely(iocb->ki_pos < 0))
+ return -EINVAL;
if (unlikely(iocb->ki_pos >= inode->i_sb->s_maxbytes))
return 0;
if (unlikely(!iov_iter_count(iter)))