Jan Kara 12dab8
From fbbbbd2f28aec991f3fbc248df211550fbdfd58c Mon Sep 17 00:00:00 2001
Jan Kara 12dab8
From: Colin Ian King <colin.king@canonical.com>
Jan Kara 12dab8
Date: Fri, 10 May 2019 22:06:38 -0400
Jan Kara 12dab8
Subject: [PATCH] ext4: unsigned int compared against zero
Jan Kara 12dab8
Git-commit: fbbbbd2f28aec991f3fbc248df211550fbdfd58c
Jan Kara 12dab8
Patch-mainline: v5.2-rc1
Jan Kara 12dab8
References: bsc#1158021 CVE-2019-19319
Jan Kara 12dab8
Jan Kara 12dab8
There are two cases where u32 variables n and err are being checked
Jan Kara 12dab8
for less than zero error values, the checks is always false because
Jan Kara 12dab8
the variables are not signed. Fix this by making the variables ints.
Jan Kara 12dab8
Jan Kara 12dab8
Addresses-coverity: ("Unsigned compared against 0")
Jan Kara 12dab8
Fixes: 345c0dbf3a30 ("ext4: protect journal inode's blocks using block_validity")
Jan Kara 12dab8
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Jan Kara 12dab8
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Jan Kara 12dab8
Acked-by: Jan Kara <jack@suse.cz>
Jan Kara 12dab8
Jan Kara 12dab8
---
Jan Kara 12dab8
 fs/ext4/block_validity.c | 3 ++-
Jan Kara 12dab8
 1 file changed, 2 insertions(+), 1 deletion(-)
Jan Kara 12dab8
Jan Kara 12dab8
diff --git a/fs/ext4/block_validity.c b/fs/ext4/block_validity.c
Jan Kara 12dab8
index 968f163b5feb..8d03550aaae3 100644
Jan Kara 12dab8
--- a/fs/ext4/block_validity.c
Jan Kara 12dab8
+++ b/fs/ext4/block_validity.c
Jan Kara 12dab8
@@ -142,7 +142,8 @@ static int ext4_protect_reserved_inode(struct super_block *sb, u32 ino)
Jan Kara 12dab8
 	struct inode *inode;
Jan Kara 12dab8
 	struct ext4_sb_info *sbi = EXT4_SB(sb);
Jan Kara 12dab8
 	struct ext4_map_blocks map;
Jan Kara 12dab8
-	u32 i = 0, err = 0, num, n;
Jan Kara 12dab8
+	u32 i = 0, num;
Jan Kara 12dab8
+	int err = 0, n;
Jan Kara 12dab8
 
Jan Kara 12dab8
 	if ((ino < EXT4_ROOT_INO) ||
Jan Kara 12dab8
 	    (ino > le32_to_cpu(sbi->s_es->s_inodes_count)))
Jan Kara 12dab8
-- 
Jan Kara 12dab8
2.16.4
Jan Kara 12dab8