Krolyxon
Commit 470f50f

Branches

Refs →

nsxiv470f50f

fix: img_load_gif: out-of-bound access

according to imlib2's gif loader, bg should already be transparent black
if bg > cmap->ColorCount
Author
NRK
Date
2021-11-21 09:04 +0600
Committer
N-R-K · 2021-11-26 15:36 +0600
Parent
ca7368a
Commit
470f50f9f885987e39b335547e2a3809d6b8056f

+7 −4

1 file changed

  1. M image.c +7 −4
M image.c View
@@ -203,10 +203,13 @@ static bool img_load_gif(img_t *img, const fileinfo_t *file)
203203
204204 ptr = data = emalloc(sw * sh * sizeof(DATA32));
205205 cmap = gif->Image.ColorMap ? gif->Image.ColorMap : gif->SColorMap;
206− r = cmap->Colors[bg].Red;
207− g = cmap->Colors[bg].Green;
208− b = cmap->Colors[bg].Blue;
209− bgpixel = 0x00ffffff & (r << 16 | g << 8 | b);
206+ /* if bg > cmap->ColorCount, it is transparent black already */
207+ if (cmap && bg >= 0 && bg < cmap->ColorCount) {
208+ r = cmap->Colors[bg].Red;
209+ g = cmap->Colors[bg].Green;
210+ b = cmap->Colors[bg].Blue;
211+ bgpixel = 0x00ffffff & (r << 16 | g << 8 | b);
212+ }
210213
211214 for (i = 0; i < sh; i++) {
212215 for (j = 0; j < sw; j++) {