summaryrefslogtreecommitdiffstats
path: root/fs/exfat
diff options
context:
space:
mode:
authorNamjae Jeon <namjae.jeon@samsung.com>2020-07-03 11:16:32 +0900
committerNamjae Jeon <namjae.jeon@samsung.com>2020-07-21 10:44:06 +0900
commit43946b70494beefe40ec1b2ba4744c0f294d7736 (patch)
tree70aa76f22938b1d00033ed174e7ea6af7d7aa043 /fs/exfat
parentba47d845d715a010f7b51f6f89bae32845e6acb7 (diff)
downloadlinux-43946b70494beefe40ec1b2ba4744c0f294d7736.tar.gz
linux-43946b70494beefe40ec1b2ba4744c0f294d7736.tar.bz2
linux-43946b70494beefe40ec1b2ba4744c0f294d7736.zip
exfat: fix overflow issue in exfat_cluster_to_sector()
An overflow issue can occur while calculating sector in exfat_cluster_to_sector(). It needs to cast clus's type to sector_t before left shifting. Fixes: 1acf1a564b60 ("exfat: add in-memory and on-disk structures and headers") Cc: stable@vger.kernel.org # v5.7 Reviewed-by: Sungjong Seo <sj1557.seo@samsung.com> Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
Diffstat (limited to 'fs/exfat')
-rw-r--r--fs/exfat/exfat_fs.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/exfat/exfat_fs.h b/fs/exfat/exfat_fs.h
index 7579cd3bbadb..75c7bdbeba6d 100644
--- a/fs/exfat/exfat_fs.h
+++ b/fs/exfat/exfat_fs.h
@@ -371,7 +371,7 @@ static inline bool exfat_is_last_sector_in_cluster(struct exfat_sb_info *sbi,
static inline sector_t exfat_cluster_to_sector(struct exfat_sb_info *sbi,
unsigned int clus)
{
- return ((clus - EXFAT_RESERVED_CLUSTERS) << sbi->sect_per_clus_bits) +
+ return ((sector_t)(clus - EXFAT_RESERVED_CLUSTERS) << sbi->sect_per_clus_bits) +
sbi->data_start_sector;
}