fb_generic: add sanity check and missing mark() to painIcon8

This commit is contained in:
Stefan Seyfried
2017-02-12 18:10:11 +01:00
committed by svenhoefer
parent ff0d98bcc3
commit ec40cf7986

View File

@@ -744,6 +744,12 @@ bool CFrameBuffer::paintIcon8(const std::string & filename, const int x, const i
width = (header.width_hi << 8) | header.width_lo; width = (header.width_hi << 8) | header.width_lo;
height = (header.height_hi << 8) | header.height_lo; height = (header.height_hi << 8) | header.height_lo;
if (width > 768) {
/* this is not going to happen, but check anyway */
printf("%s: icon %s too wide (%d)\n", __func__, filename.c_str(), (int)width);
close(lfd);
return false;
}
unsigned char pixbuf[768]; unsigned char pixbuf[768];
uint8_t * d = ((uint8_t *)getFrameBufferPointer()) + x * sizeof(fb_pixel_t) + stride * y; uint8_t * d = ((uint8_t *)getFrameBufferPointer()) + x * sizeof(fb_pixel_t) + stride * y;
@@ -764,6 +770,7 @@ bool CFrameBuffer::paintIcon8(const std::string & filename, const int x, const i
d += stride; d += stride;
} }
close(lfd); close(lfd);
mark(x, y, x + width, y + height);
return true; return true;
} }