You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
24 lines
840 B
24 lines
840 B
From 803f49aaae16b7f2899e4769afdfc673a21fa9e8 Mon Sep 17 00:00:00 2001
|
|
From: Guido Draheim <guidod@gmx.de>
|
|
Date: Mon, 26 Feb 2024 23:17:12 +0100
|
|
Subject: [PATCH] #69 assert full zzip_file_header
|
|
|
|
---
|
|
zzip/mmapped.c | 3 ++-
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/zzip/mmapped.c b/zzip/mmapped.c
|
|
index 2071882..306ba51 100644
|
|
--- a/zzip/mmapped.c
|
|
+++ b/zzip/mmapped.c
|
|
@@ -276,7 +276,8 @@ struct zzip_file_header *
|
|
zzip_disk_entry_to_file_header(ZZIP_DISK * disk, struct zzip_disk_entry *entry)
|
|
{
|
|
zzip_byte_t *const ptr = disk->buffer + zzip_disk_entry_fileoffset(entry);
|
|
- if (disk->buffer > ptr || ptr >= disk->endbuf)
|
|
+ zzip_byte_t *const end = ptr + sizeof(struct zzip_file_header);
|
|
+ if (disk->buffer > ptr || end >= disk->endbuf || end <= NULL)
|
|
{
|
|
errno = EBADMSG;
|
|
return 0;
|