why the free is in pngwrite.c; the png_ptr->riffled_palette structure is allocated in png_do_read_transformations() from pngrtran.c and called only from pngread.c
why PNG_READ_EXPANDED_SUPPORTED is used in the preprocessor condition; the structure is allocated only only if PNG_ARM_NEON_INTRINSICS_AVAILABLE is defined and this is iff PNG_ARM_NEON_IMPLEMENTATION == 1.
Add pngvalid-transform.log
There is
in pngwrite.c nevertheless I have two doubts:
why the free is in pngwrite.c; the png_ptr->riffled_palette structure is allocated in png_do_read_transformations() from pngrtran.c and called only from pngread.c
why PNG_READ_EXPANDED_SUPPORTED is used in the preprocessor condition; the structure is allocated only only if PNG_ARM_NEON_INTRINSICS_AVAILABLE is defined and this is iff PNG_ARM_NEON_IMPLEMENTATION == 1.
These two doubts resulted in
https://build.opensuse.org/package/view_file/graphics/libpng16/libpng-arm-free.patch?expand=1
and the build now succedes:
https://build.opensuse.org/package/show/graphics/libpng16
Please look at the patch more thoroughly.
See for detailed analysis:
https://bugzilla.suse.com/show_bug.cgi?id=1121829