File xine-ui-libpng15.diff of Package xine-ui
diff -uNr xine-ui-0.99.6.orig/src/xitk/Imlib-light/load.c xine-ui-0.99.6/src/xitk/Imlib-light/load.c
--- xine-ui-0.99.6.orig/src/xitk/Imlib-light/load.c 2010-03-01 18:02:05.000000000 +0100
+++ xine-ui-0.99.6/src/xitk/Imlib-light/load.c 2012-05-26 14:28:07.263658527 +0200
@@ -61,7 +61,18 @@
png_destroy_read_struct(&png_ptr, NULL, NULL);
return NULL;
}
- if (info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA)
+ /* Not sure why is following check here. As far as I can see,
+ memory, which is info_ptr pointing to, is zeroed in
+ png_create_info_struct(). In png.h:
+ #define PNG_COLOR_MASK_COLOR 2
+ #define PNG_COLOR_MASK_ALPHA 4
+ #define PNG_COLOR_TYPE_RGB_ALPHA (PNG_COLOR_MASK_COLOR | PNG_COLOR_MASK_ALPHA)
+ So following condition is never true?
+ Nevertheless:
+ */
+ png_get_IHDR(png_ptr, info_ptr, &ww, &hh, &bit_depth, &color_type,
+ NULL, NULL, NULL);
+ if (color_type == PNG_COLOR_TYPE_RGB_ALPHA)
{
png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
return NULL;