Patchwork [1/6] mke2fs: fix crash when parsing "-E resize=NNN" with "-O 64bit"

login
register
mail settings
Submitter Theodore Ts'o
Date Dec. 29, 2012, 8:55 a.m.
Message ID <1356771328-18196-2-git-send-email-tytso@mit.edu>
Download mbox | patch
Permalink /patch/208630/
State Accepted
Headers show

Comments

Theodore Ts'o - Dec. 29, 2012, 8:55 a.m.
If the 64-bit file system feature is enabled, then mke2fs would crash
due to a divide-by-zero error caused by s_desc_size not being
initialized yet.

Reported-by: George Spelvin <linux@horizon.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
---
 misc/mke2fs.c | 8 ++++++++
 1 file changed, 8 insertions(+)

Patch

diff --git a/misc/mke2fs.c b/misc/mke2fs.c
index 7ec8cc2..0f9a299 100644
--- a/misc/mke2fs.c
+++ b/misc/mke2fs.c
@@ -1873,6 +1873,14 @@  profile_error:
 
 	blocksize = EXT2_BLOCK_SIZE(&fs_param);
 
+	/*
+	 * Initialize s_desc_size so that the parse_extended_opts()
+	 * can correctly handle "-E resize=NNN" if the 64-bit option
+	 * is set.
+	 */
+	if (fs_param.s_feature_incompat & EXT4_FEATURE_INCOMPAT_64BIT)
+		fs_param.s_desc_size = EXT2_MIN_DESC_SIZE_64BIT;
+
 	/* This check should happen beyond the last assignment to blocksize */
 	if (blocksize > sys_page_size) {
 		if (!force) {