>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