diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2008-04-21 20:15:28 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2008-04-21 20:15:28 +0100 |
commit | 63bba7e60c0c83f5456aa52611212264478148b4 (patch) | |
tree | 70189973b924398118a453049e8acf88929c4a67 /src/cairo-png.c | |
parent | 20b1b33c0fc76d2ec2b4f83d9ce058429c4f49db (diff) |
[cairo-png] Call png_set_filler() before png_read_update_info().
Otherwise libpng gets very confused and we start scribbling over invalid
memory whilst reading in the PNG.
Diffstat (limited to 'src/cairo-png.c')
-rw-r--r-- | src/cairo-png.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/cairo-png.c b/src/cairo-png.c index c1cda34a..9476ab60 100644 --- a/src/cairo-png.c +++ b/src/cairo-png.c @@ -504,6 +504,8 @@ read_png (png_rw_ptr read_func, if (interlace != PNG_INTERLACE_NONE) png_set_interlace_handling (png); + png_set_filler (png, 0xff, PNG_FILLER_AFTER); + /* recheck header after setting EXPAND options */ png_read_update_info (png, info); png_get_IHDR (png, info, @@ -530,7 +532,6 @@ read_png (png_rw_ptr read_func, case PNG_COLOR_TYPE_RGB: format = CAIRO_FORMAT_RGB24; png_set_read_user_transform_fn (png, convert_bytes_to_data); - png_set_filler (png, 0xff, PNG_FILLER_AFTER); break; } |