lib/gterm: Fix long standing bug in genloop() that could cause memory corruption

This commit is contained in:
mintsuki 2024-07-21 06:20:10 +02:00
parent f8840eae87
commit 7703eaa1ca
1 changed files with 11 additions and 0 deletions

View File

@ -344,6 +344,17 @@ __attribute__((always_inline)) static inline void genloop(struct fb_info *fb, si
uint8_t *img = background->img; uint8_t *img = background->img;
const size_t img_width = background->img_width, img_height = background->img_height, img_pitch = background->pitch, colsize = background->bpp / 8; const size_t img_width = background->img_width, img_height = background->img_height, img_pitch = background->pitch, colsize = background->bpp / 8;
if (xstart > xend) {
size_t tmp = xstart;
xstart = xend;
xend = tmp;
}
if (ystart > yend) {
size_t tmp = ystart;
ystart = yend;
yend = tmp;
}
switch (background->type) { switch (background->type) {
case IMAGE_TILED: case IMAGE_TILED:
for (size_t y = ystart; y < yend; y++) { for (size_t y = ystart; y < yend; y++) {