[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