Skip to contentSkip to conversation

Patch "dm integrity: test for corrupted disk format during table load" has been added to the 4.12-stable tree

PATCH [email protected] 1 participant 1 message Aug 1, 2017

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

dm integrity: test for corrupted disk format during table load

to the 4.12-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
dm-integrity-test-for-corrupted-disk-format-during-table-load.patch
and it can be found in the queue-4.12 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From bc86a41e96c5b6f07453c405e036d95acc673389 Mon Sep 17 00:00:00 2001

From: Mikulas Patocka <[email protected]>
Date: Fri, 21 Jul 2017 11:58:38 -0400
Subject: dm integrity: test for corrupted disk format during table load

From: Mikulas Patocka <[email protected]>

commit bc86a41e96c5b6f07453c405e036d95acc673389 upstream.

If the dm-integrity superblock was corrupted in such a way that the journal_sections field was zero, the integrity target would deadlock because it would wait forever for free space in the journal.

Detect this situation and refuse to activate the device.

Fixes 7eada909bfd7 ("dm: add integrity target")
---
 drivers/md/dm-integrity.c |    5 +++++
 1 file changed, 5 insertions(+)
drivers/md/dm-integrity.c +5 -0
@@ -3021,6 +3021,11 @@ static int dm_integrity_ctr(struct dm_ta
 		ti->error = "Block size doesn't match the information in superblock";
 		goto bad;
 	}
+	if (!le32_to_cpu(ic->sb->journal_sections)) {
+		r = -EINVAL;
+		ti->error = "Corrupted superblock, journal_sections is 0";
+		goto bad;
+	}
 	/* make sure that ti->max_io_len doesn't overflow */
 	if (ic->sb->log2_interleave_sectors < MIN_LOG2_INTERLEAVE_SECTORS ||
 	    ic->sb->log2_interleave_sectors > MAX_LOG2_INTERLEAVE_SECTORS) {

Patches currently in stable-queue which might be from [email protected] are

queue-4.12/dm-integrity-fix-inefficient-allocation-of-journal-space.patch queue-4.12/dm-integrity-test-for-corrupted-disk-format-during-table-load.patch