diff options
Diffstat (limited to 'x11-libs/cairo/files/cairo-1.6.4-libpng-api-change.patch')
-rw-r--r-- | x11-libs/cairo/files/cairo-1.6.4-libpng-api-change.patch | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/x11-libs/cairo/files/cairo-1.6.4-libpng-api-change.patch b/x11-libs/cairo/files/cairo-1.6.4-libpng-api-change.patch new file mode 100644 index 000000000000..b67de786b361 --- /dev/null +++ b/x11-libs/cairo/files/cairo-1.6.4-libpng-api-change.patch @@ -0,0 +1,27 @@ +diff -ru cairo-1.6.4/src/cairo-png.c cairo-1.6.4-mod/src/cairo-png.c +--- cairo-1.6.4/src/cairo-png.c 2008-04-11 17:07:25.000000000 -0400 ++++ cairo-1.6.4-mod/src/cairo-png.c 2008-08-19 17:19:36.682399853 -0400 +@@ -119,6 +119,14 @@ + } + + ++/* Starting with libpng-1.2.30, we must explicitly specify an output_flush_fn. ++ * Otherwise, we will segfault if we are writing to a stream. */ ++static void ++png_simple_output_flush_fn (png_structp png_ptr) ++{ ++ return; ++} ++ + static cairo_status_t + write_png (cairo_surface_t *surface, + png_rw_ptr write_func, +@@ -179,7 +187,7 @@ + goto BAIL3; + #endif + +- png_set_write_fn (png, closure, write_func, NULL); ++ png_set_write_fn (png, closure, write_func, png_simple_output_flush_fn); + + switch (image->format) { + case CAIRO_FORMAT_ARGB32: |