Blame SOURCES/e2fsprogs-1.45.6-debugfs-fix-parse_uint-for-64-bit-fields.patch

e427d2
From c78e3e170a63bb1804b47d4f5a6652aad0e4d3b2 Mon Sep 17 00:00:00 2001
e427d2
From: Theodore Ts'o <tytso@mit.edu>
e427d2
Date: Tue, 6 Oct 2020 08:29:09 -0400
e427d2
Subject: [PATCH 12/46] debugfs: fix parse_uint for 64-bit fields
e427d2
Content-Type: text/plain
e427d2
e427d2
The logic for handling 64-bit structure elements was reversed, which
e427d2
caused attempts to set fields like kbytes_written to fail:
e427d2
e427d2
    % debugfs -w /tmp/foo.img
e427d2
    debugfs 1.45.6 (20-Mar-2020)
e427d2
    debugfs:  set_super_value kbytes_written 1024
e427d2
    64-bit field kbytes_written has a second 64-bit field
e427d2
    defined; BUG?!?
e427d2
e427d2
https://github.com/tytso/e2fsprogs/issues/36
e427d2
e427d2
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
e427d2
Signed-off-by: Lukas Czerner <lczerner@redhat.com>
e427d2
---
e427d2
 debugfs/set_fields.c | 10 +++++-----
e427d2
 1 file changed, 5 insertions(+), 5 deletions(-)
e427d2
e427d2
diff --git a/debugfs/set_fields.c b/debugfs/set_fields.c
e427d2
index 5142554d..281f2c5d 100644
e427d2
--- a/debugfs/set_fields.c
e427d2
+++ b/debugfs/set_fields.c
e427d2
@@ -487,10 +487,7 @@ static errcode_t parse_uint(struct field_set_info *info, char *field,
e427d2
 	n = num & mask;
e427d2
 	switch (size) {
e427d2
 	case 8:
e427d2
-		/* Should never get here */
e427d2
-		fprintf(stderr, "64-bit field %s has a second 64-bit field\n"
e427d2
-			"defined; BUG?!?\n", info->name);
e427d2
-		*u.ptr64 = 0;
e427d2
+		*u.ptr64 = n;
e427d2
 		break;
e427d2
 	case 4:
e427d2
 		*u.ptr32 = n;
e427d2
@@ -510,7 +507,10 @@ static errcode_t parse_uint(struct field_set_info *info, char *field,
e427d2
 		size = 2;
e427d2
 	switch (size) {
e427d2
 	case 8:
e427d2
-		*u.ptr64 = n;
e427d2
+		/* Should never get here */
e427d2
+		fprintf(stderr, "64-bit field %s has a second 64-bit field\n"
e427d2
+			"defined; BUG?!?\n", info->name);
e427d2
+		*u.ptr64 = 0;
e427d2
 		break;
e427d2
 	case 4:
e427d2
 		*u.ptr32 = n;
e427d2
-- 
e427d2
2.35.1
e427d2