Hi,

I am not a FreeImage dev at all, just a user who encountered a bug and tried to fix it. Maybe my patch wasn't the best way to solve this issue, it passed a very basic unit test
but was merely a suggestion.

The real problem here is that a previous debian patch in FreeImage, disabled the support
for the Fax G3 format in FreeImage.

Long story short: this is the patch at the root of this issue. FreeImage is not meant to be
used with only part of its image support.

The longer version:
This previous patch also baldy broke some client code
(in my case, using FreeImage to save a Jpeg2000 image actually saved it as an OpenEXR, this problem happened for many other formats). I short, the problem was that some enums (from FREE_IMAGE_FORMAT) naming image formats did no longer had the intended meaning.

My patch fixed this issue but at the cost of NULL checking the return of some API functions, or
calling FreeImage_FIFSupportsReading ().
However this may or may not be an API breakage since the FreeImage documentation does not says the returned pointers (at least for FreeImage_GetFIFExtensionList) are not NULL (but a quick code review *seems* to show that in practice they can be NULL [1], even tough it is not specified so). This may possibly break many clients (like OGRE) since they relied on
unspecified behavior (and thus were not correct in the first place).

The best solution - I believe - is to put back the support for the G3 format. Since my patch and the previous one both introduce some kind of API breakage. This is mostly due to a badly designed image format plugin system in FreeImage, I don't believe we can remove support for a format
without changing the API.

As a side note, the first patch maybe already broke some clients of OGRE as the G3 format is no
longer supported.

Best Regards,

    -- Boris

[1] There are quite a few conditions that can cause this function to return NULL but I'm not sure
      they are ever fulfilled.

On 03/01/2017 12:50, James Cowgill wrote:
Hi Boris,

Your patch to fix this bug broke OGRE (completely - nothing that uses it
will start) because it dereferences the NULL pointer now returned by
FreeImage_GetFIFExtensionList. See https://bugs.debian.org/849696.

Did you consider this when you wrote your patch? Who's right here - your
patch or OGRE? I am concerned about this patch because it effectively
changes the freeimage API and potentially forces a number of
reverse-dependencies of freeimage to change their code.

Thanks,
James


--
debian-science-maintainers mailing list
debian-science-maintainers@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/debian-science-maintainers

Reply via email to