linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] exfat: fix overflow issue in exfat_cluster_to_sector()
       [not found] <CGME20200703064749epcas1p142abf1759a90450434ff7d7fbc7dd116@epcas1p1.samsung.com>
@ 2020-07-03  6:42 ` Namjae Jeon
       [not found]   ` <CGME20200703064750epcas1p487820ba4670511e02410c3a9ffbf8f89@epcas1p4.samsung.com>
  0 siblings, 1 reply; 2+ messages in thread
From: Namjae Jeon @ 2020-07-03  6:42 UTC (permalink / raw)
  To: linux-fsdevel; +Cc: sj1557.seo, kohada.t2, Namjae Jeon, stable

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>
---
 fs/exfat/exfat_fs.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/exfat/exfat_fs.h b/fs/exfat/exfat_fs.h
index 3aed8e22087a..cb51d6e83199 100644
--- a/fs/exfat/exfat_fs.h
+++ b/fs/exfat/exfat_fs.h
@@ -368,7 +368,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;
 }
 
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [PATCH 2/2] exfat: fix wrong hint_stat initialization in exfat_find_dir_entry()
       [not found]   ` <CGME20200703064750epcas1p487820ba4670511e02410c3a9ffbf8f89@epcas1p4.samsung.com>
@ 2020-07-03  6:42     ` Namjae Jeon
  0 siblings, 0 replies; 2+ messages in thread
From: Namjae Jeon @ 2020-07-03  6:42 UTC (permalink / raw)
  To: linux-fsdevel; +Cc: sj1557.seo, kohada.t2, Namjae Jeon, stable

We found the wrong hint_stat initialization in exfat_find_dir_entry().
It should be initialized when cluster is EXFAT_EOF_CLUSTER.

Fixes: ca06197382bd ("exfat: add directory operations")
Cc: stable@vger.kernel.org # v5.7
Reviewed-by: Sungjong Seo <sj1557.seo@samsung.com>
Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
---
 fs/exfat/dir.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/exfat/dir.c b/fs/exfat/dir.c
index f4cea9a7fd02..573659bfbc55 100644
--- a/fs/exfat/dir.c
+++ b/fs/exfat/dir.c
@@ -1116,7 +1116,7 @@ int exfat_find_dir_entry(struct super_block *sb, struct exfat_inode_info *ei,
 			ret = exfat_get_next_cluster(sb, &clu.dir);
 		}
 
-		if (ret || clu.dir != EXFAT_EOF_CLUSTER) {
+		if (ret || clu.dir == EXFAT_EOF_CLUSTER) {
 			/* just initialized hint_stat */
 			hint_stat->clu = p_dir->dir;
 			hint_stat->eidx = 0;
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2020-07-03  6:47 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <CGME20200703064749epcas1p142abf1759a90450434ff7d7fbc7dd116@epcas1p1.samsung.com>
2020-07-03  6:42 ` [PATCH 1/2] exfat: fix overflow issue in exfat_cluster_to_sector() Namjae Jeon
     [not found]   ` <CGME20200703064750epcas1p487820ba4670511e02410c3a9ffbf8f89@epcas1p4.samsung.com>
2020-07-03  6:42     ` [PATCH 2/2] exfat: fix wrong hint_stat initialization in exfat_find_dir_entry() Namjae Jeon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).