[PATCH 3/5] bios: ebdadump: ensure mmap'd memory is readable before accessing it

Colin King colin.king at canonical.com
Wed Jul 12 12:53:32 UTC 2017


From: Colin Ian King <colin.king at canonical.com>

We need to check we don't get SIGSEGV or SIGBUS errors when reading
the mmap'd data before we try and access it. Use the fwts_safe_memread
check on the data to sanity check these mappings.

Signed-off-by: Colin Ian King <colin.king at canonical.com>
---
 src/bios/ebdadump/ebdadump.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/bios/ebdadump/ebdadump.c b/src/bios/ebdadump/ebdadump.c
index 437f225a..94f9376c 100644
--- a/src/bios/ebdadump/ebdadump.c
+++ b/src/bios/ebdadump/ebdadump.c
@@ -66,7 +66,10 @@ static int ebdadump_test1(fwts_framework *fw)
 		BIOS_ROM_START,
 		len);
 
-	ebdadump_data(fw, mem, ebda_addr, len);
+	if (fwts_safe_memread((void *)mem, len) != FWTS_OK)
+		fwts_log_info(fw, "EBDA region at cannot be read");
+	else
+		ebdadump_data(fw, mem, ebda_addr, len);
         (void)fwts_munmap(mem, len);
 
 	fwts_infoonly(fw);
-- 
2.11.0




More information about the fwts-devel mailing list