From 417e9c5d98ce8ecda3676b0c8dd7f14c0c9c7f3b Mon Sep 17 00:00:00 2001 From: Alex Brown Date: Sat, 9 Feb 2019 22:54:21 +0000 Subject: [PATCH] Fixed NULL_PTR being mistaken for out of range pointer. --- siboimg.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/siboimg.c b/siboimg.c index b15750b..7a9fcf1 100644 --- a/siboimg.c +++ b/siboimg.c @@ -195,8 +195,8 @@ void getfile(int pos, char path[], char *buffer[], const char localpath[], const fwrite(*buffer + cur_data_ptr, 1, cur_data_len, fp); printf("Next entry record: 0x%06x\n", next_pos); - if (next_pos > buffer_len) { - printf("siboimg: detected pointer too high\n"); + if (next_pos > buffer_len && next_pos != NULL_PTR) { + printf("siboimg: detected pointer out of range\n"); exit(EXIT_FAILURE); } @@ -306,7 +306,7 @@ void walkpath(int pos, char path[], char *buffer[], const char img_name[], const memcpy(&first_entry_ptr, *buffer + (pos + ENTRY_FIRSTENTRYRECORDPTR_OFFSET), ENTRY_FIRSTENTRYRECORDPTR_LENGTH); printf("First Entry Pointer: 0x%06x\n", first_entry_ptr); if(first_entry_ptr > buffer_len) { - printf("siboimg: detected pointer too high\n"); + printf("siboimg: detected pointer out of range\n"); exit(EXIT_FAILURE); }