Skip to content

Commit a5b600c

Browse files
authored
Merge pull request #46 from sysprog21/fix-gifdec
Fix out-of-bounds read access in GIF decoding
2 parents ef29046 + aeb0ad3 commit a5b600c

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

mk/common.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ RM := rm -rf
117117
MKDIR := mkdir -p
118118

119119
__CFLAGS := -Wall -Wextra -pipe
120-
__CFLAGS += -O2 -g -pipe
120+
__CFLAGS += -Og -g -pipe
121121
__CFLAGS += $(CFLAGS)
122122

123123
uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')

src/image-gif.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -578,9 +578,7 @@ static twin_animation_t *_twin_animation_from_gif_file(const char *path)
578578
twin_pointer_t p = twin_pixmap_pointer(anim->frames[i], 0, 0);
579579
twin_coord_t row = 0, col = 0;
580580
for (int j = 0; j < gif->width * gif->height; j++) {
581-
uint8_t r = *(color++);
582-
uint8_t g = *(color++);
583-
uint8_t b = *(color++);
581+
uint8_t r = color[0], g = color[1], b = color[2];
584582
if (!gif_is_bgcolor(gif, color))
585583
*(p.argb32++) = 0xFF000000U | (r << 16) | (g << 8) | b;
586584
/* Construct background */
@@ -593,6 +591,8 @@ static twin_animation_t *_twin_animation_from_gif_file(const char *path)
593591
row++;
594592
col = 0;
595593
}
594+
/* next palette */
595+
color += 3;
596596
}
597597
/* GIF delay in units of 1/100 second */
598598
anim->frame_delays[i] = gif->gce.delay * 10;

0 commit comments

Comments
 (0)