summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/libnsbmp.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/libnsbmp.c b/src/libnsbmp.c
index 2d861bd..976b513 100644
--- a/src/libnsbmp.c
+++ b/src/libnsbmp.c
@@ -260,7 +260,9 @@ bmp_result ico_analyse(ico_collection *ico, size_t size, uint8_t *data) {
data += ICO_DIR_ENTRY_SIZE;
/* Ensure that the bitmap data resides in the buffer */
- if (image->bmp.bmp_data - ico->ico_data >= ico->buffer_size)
+ if (image->bmp.bmp_data - ico->ico_data >= 0 &&
+ (uint32_t)(image->bmp.bmp_data -
+ ico->ico_data) >= ico->buffer_size)
return BMP_DATA_ERROR;
/* Ensure that we have sufficient data to read the bitmap */