[PATCH 1/1][SAUCY][SRU] eCryptfs: fix 32 bit corruption issue

Tyler Hicks tyhicks at canonical.com
Fri Oct 25 00:23:46 UTC 2013


From: Colin Ian King <colin.king at canonical.com>

BugLink: https://launchpad.net/bugs/1243636

Shifting page->index on 32 bit systems was overflowing, causing
data corruption of > 4GB files. Fix this by casting it first.

Signed-off-by: Colin Ian King <colin.king at canonical.com>
Reported-by: Lars Duesing <lars.duesing at camelotsweb.de>
Cc: stable at vger.kernel.org # v3.11+
Signed-off-by: Tyler Hicks <tyhicks at canonical.com>
(cherry picked from commit 43b7c6c6a4e3916edd186ceb61be0c67d1e0969e
 from the next branch of kernel/git/tyhicks/ecryptfs.git)
---
 fs/ecryptfs/crypto.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/ecryptfs/crypto.c b/fs/ecryptfs/crypto.c
index d107576..40db688 100644
--- a/fs/ecryptfs/crypto.c
+++ b/fs/ecryptfs/crypto.c
@@ -408,7 +408,7 @@ static loff_t lower_offset_for_page(struct ecryptfs_crypt_stat *crypt_stat,
 				    struct page *page)
 {
 	return ecryptfs_lower_header_size(crypt_stat) +
-	       (page->index << PAGE_CACHE_SHIFT);
+	       ((loff_t)page->index << PAGE_CACHE_SHIFT);
 }
 
 /**
-- 
1.8.3.2





More information about the kernel-team mailing list