Blame SOURCES/0036-exfat-fix-incorrect-update-of-stream-entry-in-__exfa.patch

Kmods SIG 9e3ffb
From 29bbb14bfc80dd760b07d2be0a27e610562982e3 Mon Sep 17 00:00:00 2001
Kmods SIG 9e3ffb
From: Namjae Jeon <namjae.jeon@samsung.com>
Kmods SIG 9e3ffb
Date: Thu, 4 Jun 2020 08:05:31 +0900
Kmods SIG 9e3ffb
Subject: [Backport 29bbb14bfc80] exfat: fix incorrect update of stream entry
Kmods SIG 9e3ffb
 in __exfat_truncate()
Kmods SIG 9e3ffb
Kmods SIG 9e3ffb
At truncate, there is a problem of incorrect updating in the file entry
Kmods SIG 9e3ffb
pointer instead of stream entry. This will cause the problem of
Kmods SIG 9e3ffb
overwriting the time field of the file entry to new_size. Fix it to
Kmods SIG 9e3ffb
update stream entry.
Kmods SIG 9e3ffb
Kmods SIG 9e3ffb
Fixes: 98d917047e8b ("exfat: add file operations")
Kmods SIG 9e3ffb
Cc: stable@vger.kernel.org # v5.7
Kmods SIG 9e3ffb
Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
Kmods SIG 9e3ffb
---
Kmods SIG 9e3ffb
 src/file.c | 8 ++++----
Kmods SIG 9e3ffb
 1 file changed, 4 insertions(+), 4 deletions(-)
Kmods SIG 9e3ffb
Kmods SIG 9e3ffb
diff --git a/src/file.c b/src/file.c
Kmods SIG 9e3ffb
index 8e3f0eef45d77345e6f57ef58f3e86c51c69e905..fce03f31878735e1fa389231abc1052f24447146 100644
Kmods SIG 9e3ffb
--- a/src/file.c
Kmods SIG 9e3ffb
+++ b/src/file.c
Kmods SIG 9e3ffb
@@ -171,11 +171,11 @@ int __exfat_truncate(struct inode *inode, loff_t new_size)
Kmods SIG 9e3ffb
 
Kmods SIG 9e3ffb
 		/* File size should be zero if there is no cluster allocated */
Kmods SIG 9e3ffb
 		if (ei->start_clu == EXFAT_EOF_CLUSTER) {
Kmods SIG 9e3ffb
-			ep->dentry.stream.valid_size = 0;
Kmods SIG 9e3ffb
-			ep->dentry.stream.size = 0;
Kmods SIG 9e3ffb
+			ep2->dentry.stream.valid_size = 0;
Kmods SIG 9e3ffb
+			ep2->dentry.stream.size = 0;
Kmods SIG 9e3ffb
 		} else {
Kmods SIG 9e3ffb
-			ep->dentry.stream.valid_size = cpu_to_le64(new_size);
Kmods SIG 9e3ffb
-			ep->dentry.stream.size = ep->dentry.stream.valid_size;
Kmods SIG 9e3ffb
+			ep2->dentry.stream.valid_size = cpu_to_le64(new_size);
Kmods SIG 9e3ffb
+			ep2->dentry.stream.size = ep->dentry.stream.valid_size;
Kmods SIG 9e3ffb
 		}
Kmods SIG 9e3ffb
 
Kmods SIG 9e3ffb
 		if (new_size == 0) {
Kmods SIG 9e3ffb
-- 
Kmods SIG 9e3ffb
2.31.1
Kmods SIG 9e3ffb