Hello,

While having a look at the changes done in 0.9.5 to fix several CVEs, I noticed 
a quite easy to fix
ABI incompatible change that was introduced in r1835. In that patch, a new 
ePdfError_BrokenFile
constant was added to the EPdfError enum, the problem is that it was inserted 
between other values,
so that changed the values of all the constants below it.

This breaks the ABI, since code built to check for a value will check for a 
different integer value
in 0.9.5 and 0.9.6. This can be fixed as easily as moving the new 
ePdfError_BrokenFile constant to
the end of the enum list (right before ePdfError_Unknown = 0xffff).

Then I checked the full list of changes between 0.9.5 and current code in trunk 
and noticed there
are many changes that give an incompatible ABI with respect to 0.9.5 .

Is there any policy with respect to maintaining ABI compatibility in different 
versions of the
library? I think it's important for users to keep a compatible ABI, as 
otherwise, any update forces
a rebuild of all applications using podofo, and some times, that's not easy for 
users to do.

Btw, in this link there's a list of things that can and can't be done when 
developing a library in
order to keep a compatible ABI, just in case it's useful:

https://community.kde.org/Policies/Binary_Compatibility_Issues_With_C%2B%2B

Thanks!

-- 
Antonio Larrosa

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Podofo-users mailing list
Podofo-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/podofo-users

Reply via email to