Re: [PATCH] add support to "virsh dump-guest-memory"(qemu memory dump)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>From 85477b05e728224fd786941b387eea21cdc219ce Mon Sep 17 00:00:00 2001
From: HATAYAMA Daisuke <d.hatayama@xxxxxxxxxxxxxx>
Date: Tue, 21 Aug 2012 10:09:54 +0900
Subject: [PATCH] sadump: Fix invalid truncation of physical address to 32-bit values

There is invalid truncation in conversion of read requests into
back-up region where 32-bit or larger physical address is
truncated to 32-bit values, leading to unexpected result.

This patch fixes this by redefining the type of the address of
back-up region as 64-bit unsigned integer to avoid the
truncation.

Signed-off-by: HATAYAMA Daisuke <d.hatayama@xxxxxxxxxxxxxx>
---
 sadump.c |    7 ++++---
 sadump.h |    2 +-
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/sadump.c b/sadump.c
index 795b4f8..f15d6de 100644
--- a/sadump.c
+++ b/sadump.c
@@ -1057,7 +1057,7 @@ int sadump_memory_dump(FILE *fp)
 	fprintf(fp, "       block_table: %lx\n", (ulong)sd->block_table);
 	fprintf(fp, "       sd_list_len: %d\n", sd->sd_list_len);
 	fprintf(fp, "           sd_list: %lx\n", (ulong)sd->sd_list);
-	fprintf(fp, "  backup_src_start: %lx\n", sd->backup_src_start);
+	fprintf(fp, "  backup_src_start: %llx\n", sd->backup_src_start);
 	fprintf(fp, "   backup_src_size: %lx\n", sd->backup_src_size);
 	fprintf(fp, "     backup_offset: %llx\n", (ulonglong)sd->backup_src_size);
 
@@ -1621,7 +1621,8 @@ void sadump_kdump_backup_region_init(void)
 	Elf64_Off e_phoff;
 	uint16_t e_phnum, e_phentsize;
 	uint64_t backup_offset;
-	ulong backup_src_start, backup_src_size;
+	ulonglong backup_src_start;
+	ulong backup_src_size;
 	int kimage_segment_len;
 	size_t bufsize;
 
@@ -1715,7 +1716,7 @@ void sadump_kdump_backup_region_init(void)
 			if (CRASHDEBUG(1))
 				error(INFO,
 				      "sadump: kexec backup region found: "
-			  "START: %#016lx SIZE: %#016lx OFFSET: %#016llx\n",
+			  "START: %#016llx SIZE: %#016lx OFFSET: %#016llx\n",
 			  backup_src_start, backup_src_size, backup_offset);
 
 			break;
diff --git a/sadump.h b/sadump.h
index 64c2630..29dce06 100644
--- a/sadump.h
+++ b/sadump.h
@@ -204,7 +204,7 @@ struct sadump_data {
 
 /* Backup Region, First 640K of System RAM. */
 #define KEXEC_BACKUP_SRC_END	0x0009ffff
-	ulong backup_src_start;
+	ulonglong backup_src_start;
 	ulong backup_src_size;
 	ulonglong backup_offset;
 };
-- 
1.7.7.6

--
Crash-utility mailing list
Crash-utility@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/crash-utility

[Index of Archives]     [Fedora Development]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [KDE Users]     [Fedora Tools]

 

Powered by Linux