From da334f5a8754e164e53686c9399e797f124ba034 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Thu, 9 Mar 2017 15:12:16 +0000 Subject: [PATCH 25/26] wrestool/fileread: Fix check_offset to be const-correct and use size_t. Three things were wrong with this function: (1) Always use size_t when calculating or storing the size of an object in memory. (2) The function wasn't const-correct. (3) The function use arithmetic operations on void* pointers (which is not defined in C). Signed-off-by: Richard W.M. Jones --- wrestool/fileread.c | 9 +++++---- wrestool/fileread.h | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/wrestool/fileread.c b/wrestool/fileread.c index 0ec7c49..cb0d7a0 100644 --- a/wrestool/fileread.c +++ b/wrestool/fileread.c @@ -33,11 +33,12 @@ * Usually not called directly. */ bool -check_offset(char *memory, int total_size, char *name, void *offset, int size) +check_offset(const char *memory, size_t total_size, + const char *name, const void *offset, size_t size) { - char* memory_end = memory + total_size; - char* block = (char*)offset; - char* block_end = offset + size; + const char* memory_end = memory + total_size; + const char* block = (const char*) offset; + const char* block_end = block + size; /*debug("check_offset: size=%x vs %x offset=%x size=%x\n", need_size, total_size, (char *) offset - memory, size);*/ diff --git a/wrestool/fileread.h b/wrestool/fileread.h index 1cc7358..45ea543 100644 --- a/wrestool/fileread.h +++ b/wrestool/fileread.h @@ -33,6 +33,6 @@ return (r); \ } -bool check_offset(char *, int, char *, void *, int); +bool check_offset(const char *, size_t, const char *, const void *, size_t); #endif -- 2.10.2