summaryrefslogtreecommitdiff
path: root/fs/ntfs3
diff options
context:
space:
mode:
authorKari Argillander <kari.argillander@gmail.com>2021-08-25 21:24:35 +0300
committerKonstantin Komarov <almaz.alexandrovich@paragon-software.com>2021-09-02 18:51:00 +0300
commitd4e8e135a9af7d8d939bba1874ab314322fc2dc2 (patch)
treecf9fc5b6972a8024f324aed3d02970aaa2ac962d /fs/ntfs3
parentd3624466b56dd5b1886c1dff500525b544c19c83 (diff)
fs/ntfs3: Fix integer overflow in ni_fiemap with fiemap_prep()
Use fiemap_prep() to check valid flags. It also shrink request scope (@len) to what the fs can actually handle. This address following Smatch static checker warning: fs/ntfs3/frecord.c:1894 ni_fiemap() warn: potential integer overflow from user 'vbo + len' Because fiemap_prep() shrinks @len this cannot happened anymore. Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Link: lore.kernel.org/ntfs3/20210825080440.GA17407@kili/ Fixes: 4342306f0f0d ("fs/ntfs3: Add file operations and implementation") Signed-off-by: Kari Argillander <kari.argillander@gmail.com> Signed-off-by: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
Diffstat (limited to 'fs/ntfs3')
-rw-r--r--fs/ntfs3/file.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/ntfs3/file.c b/fs/ntfs3/file.c
index 89557d60a9b0..f9c9a8c91b46 100644
--- a/fs/ntfs3/file.c
+++ b/fs/ntfs3/file.c
@@ -1212,8 +1212,9 @@ int ntfs_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
int err;
struct ntfs_inode *ni = ntfs_i(inode);
- if (fieinfo->fi_flags & FIEMAP_FLAG_XATTR)
- return -EOPNOTSUPP;
+ err = fiemap_prep(inode, fieinfo, start, &len, ~FIEMAP_FLAG_XATTR);
+ if (err)
+ return err;
ni_lock(ni);