From be6d13cd6df7d1e2e842ccc4b271b9d8d7c852ef Mon Sep 17 00:00:00 2001 From: Sean Barrett Date: Sat, 18 Mar 2017 10:54:22 -0700 Subject: [PATCH] fix bug in png decoding with 1,2,4-bpp images using filter that samples previous line --- stb_image.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/stb_image.h b/stb_image.h index 023d247..119c55f 100644 --- a/stb_image.h +++ b/stb_image.h @@ -4201,7 +4201,7 @@ static int stbi__create_png_image_raw(stbi__png *a, stbi_uc *raw, stbi__uint32 r for (j=0; j < y; ++j) { stbi_uc *cur = a->out + stride*j; - stbi_uc *prior = cur - stride; + stbi_uc *prior; int filter = *raw++; if (filter > 4) @@ -4213,6 +4213,7 @@ static int stbi__create_png_image_raw(stbi__png *a, stbi_uc *raw, stbi__uint32 r filter_bytes = 1; width = img_width_bytes; } + prior = cur - stride; // bugfix: need to compute this after 'cur +=' computation above // if first row, use special filter that doesn't sample previous row if (j == 0) filter = first_row_filter[filter];