diff --git a/gdk-pixbuf/ChangeLog b/gdk-pixbuf/ChangeLog index 62ed4582c1..d9ed0d27f2 100644 --- a/gdk-pixbuf/ChangeLog +++ b/gdk-pixbuf/ChangeLog @@ -1,3 +1,11 @@ +2008-07-15 Matthias Clasen + + Bug 543085 – gdk_pixbuf_saturate_and_pixelate may corrupt memory + + * gdk-pixbuf-utils.c (gdk_pixbuf_saturate_and_pixelate): + Use gdk_pixbuf_copy_area() to copy between pixbufs. + Reported by Andrey Tsyvarev + 2008-07-15 Matthias Clasen * gdk-pixbuf-io.c: Move the check for wheter to use diff --git a/gdk-pixbuf/gdk-pixbuf-util.c b/gdk-pixbuf/gdk-pixbuf-util.c index 53e32403b1..f682aec9ba 100644 --- a/gdk-pixbuf/gdk-pixbuf-util.c +++ b/gdk-pixbuf/gdk-pixbuf-util.c @@ -190,9 +190,10 @@ gdk_pixbuf_saturate_and_pixelate(const GdkPixbuf *src, if (saturation == 1.0 && !pixelate) { if (dest != src) - memcpy (gdk_pixbuf_get_pixels (dest), - gdk_pixbuf_get_pixels (src), - gdk_pixbuf_get_height (src) * gdk_pixbuf_get_rowstride (src)); + gdk_pixbuf_copy_area (src, 0, 0, + gdk_pixbuf_get_width (src), + gdk_pixbuf_get_height (src), + dest, 0, 0); } else { int i, j, t; int width, height, has_alpha, src_rowstride, dest_rowstride, bytes_per_pixel;