Skip to content

Commit cbb8c50

Browse files
committed
core: lcd: misc. hardening fixes.
1 parent 8cf7d86 commit cbb8c50

1 file changed

Lines changed: 4 additions & 3 deletions

File tree

core/lcd.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,7 @@ void emu_lcd_drawmem(void *output, void *data, void *data_end, uint32_t lcd_cont
183183

184184
if (!out) { return; }
185185
if (!dat) { goto draw_black; }
186+
if (dat >= dat_end) { goto draw_black; }
186187

187188
if (mode < 4) {
188189
const uint16_t *palette = lcd.palettes[bgr & 1];
@@ -577,13 +578,13 @@ void emu_set_lcd_ptrs(uint32_t **dat, uint32_t **dat_end, int width, int height,
577578
uint8_t mode = lcd_control >> 1 & 7;
578579
uint8_t *data_start, *data_end, *mem_end;
579580
int length = 0;
580-
int size;
581+
size_t size;
581582

582583
*dat = NULL;
583584
*dat_end = NULL;
584-
size = width * height;
585585

586-
if (!size) { return; }
586+
if (width <= 0 || height <= 0) { return; }
587+
size = (size_t)width * (size_t)height;
587588

588589
/* Mask if true lcd */
589590
if (mask) {

0 commit comments

Comments
 (0)