Skip to content

Commit

Permalink
Merge pull request #46555 from gongpha/line-ptr-more-than-size-bmp
Browse files Browse the repository at this point in the history
Check if the line pointer goes away from the image buffer's EOF in the BMP importer
  • Loading branch information
akien-mga authored Oct 3, 2021
2 parents a88e820 + ac5d7ab commit 66ab3ce
Showing 1 changed file with 2 additions and 0 deletions.
2 changes: 2 additions & 0 deletions modules/bmp/image_loader_bmp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -91,11 +91,13 @@ Error ImageLoaderBMP::convert_to_image(Ref<Image> p_image,
// the data width in case of 8/4/1 bit images
const uint32_t w = bits_per_pixel >= 24 ? width : width_bytes;
const uint8_t *line = p_buffer + (line_width * (height - 1));
const uint8_t *end_buffer = p_buffer + p_header.bmp_file_header.bmp_file_size - p_header.bmp_file_header.bmp_file_offset;

for (uint64_t i = 0; i < height; i++) {
const uint8_t *line_ptr = line;

for (unsigned int j = 0; j < w; j++) {
ERR_FAIL_COND_V(line_ptr >= end_buffer, ERR_FILE_CORRUPT);
switch (bits_per_pixel) {
case 1: {
uint8_t color_index = *line_ptr;
Expand Down

0 comments on commit 66ab3ce

Please sign in to comment.