[PATCH] lib: fwts_safe_mem: don't perform void * pointer arithmetic, fix 32 bit end

Colin King colin.king at canonical.com
Tue Jan 23 12:05:22 UTC 2018


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

Don't perform void * pointer arithmetic, it is non-portable. Fix the 32 bit
fwts_safe_memread32 end pointer; it is the start + number of 32 bit words
rather than start + n bytes.  Also fix up comment to the fwts_safe_memread32
function name.

Signed-off-by: Colin Ian King <colin.king at canonical.com>
---
 src/lib/src/fwts_safe_mem.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/lib/src/fwts_safe_mem.c b/src/lib/src/fwts_safe_mem.c
index 7436977f..199b27f6 100644
--- a/src/lib/src/fwts_safe_mem.c
+++ b/src/lib/src/fwts_safe_mem.c
@@ -69,7 +69,7 @@ int OPTIMIZE0 fwts_safe_memcpy(void *dst, const void *src, const size_t n)
 int OPTIMIZE0 fwts_safe_memread(const void *src, const size_t n)
 {
 	static uint8_t buffer[256];
-	const uint8_t *ptr, *end = src + n;
+	const uint8_t *ptr, *end = (const uint8_t *)src + n;
 	uint8_t *bufptr;
 	const uint8_t *bufend = buffer + sizeof(buffer);
 
@@ -94,7 +94,7 @@ int OPTIMIZE0 fwts_safe_memread(const void *src, const size_t n)
 }
 
 /*
- *  fwts_safe_memread()
+ *  fwts_safe_memread32()
  *	check we can safely read a region of memory. This catches
  *	SIGSEGV/SIGBUS errors and returns FWTS_ERROR if it is not
  *	readable or FWTS_OK if it's OK.
@@ -104,7 +104,7 @@ int OPTIMIZE0 fwts_safe_memread(const void *src, const size_t n)
 int OPTIMIZE0 fwts_safe_memread32(const void *src, const size_t n)
 {
 	static uint32_t buffer[256];
-	const uint32_t *ptr, *end = src + n;
+	const uint32_t *ptr, *end = (uint32_t *)src + n;
 	uint32_t *bufptr;
 	const uint32_t *bufend = buffer + (sizeof(buffer) / sizeof(*buffer));
 
-- 
2.15.1




More information about the fwts-devel mailing list