Bug #439

The exiv2 library should be re-entrant

Added by Andreas Huggel almost 12 years ago. Updated almost 6 years ago.

Status:ClosedStart date:
Priority:NormalDue date:
Assignee:Andreas Huggel% Done:

100%

Category:design
Target version:0.22

Description

Exiv2 is currently not re-entrant. I'm aware of the following problems, but maybe there are more:
+ It uses the old versions of some C/Posix functions instead of the *_r version.
+ Construction of the Image and Makernote factories accesses static variables without any protection

Associated revisions

Revision 2538
Added by Andreas Huggel about 6 years ago

#439: Added optional parameters to XmpParser::initialize() to work around thread-safety issues (Jonathan Potter, GP Software)

History

#1 Updated by Andreas Huggel about 9 years ago

AFAICS This is finally fixed with the removal of the complex Makernote registration logic.

#2 Updated by Andreas Huggel about 9 years ago

Exiv2::XmpParser::initialize and Exiv2::XmpProperties::registerNs are not thread-safe, see http://bugs.kde.org/show_bug.cgi?id=166424

#3 Updated by Andreas Huggel over 8 years ago

  • Target version changed from 0.18 to 1.0
  • % Done changed from 0 to 80

#4 Updated by Andreas Huggel about 8 years ago

See also Thread safety in the Wiki.

#5 Updated by Gilles Caulier about 8 years ago

Andreas Huggel wrote:

Exiv2 is currently not re-entrant. I'm aware of the following problems, but maybe there are more:
+ It uses the old versions of some C/Posix functions instead of the *_r version.
+ Construction of the Image and Makernote factories accesses static variables without any protection

And use d private internal classes to host privates members/methods, to improve bianry compatibility and clean up code... This is very important for a library.

Look here for details from KDE project :

http://techbase.kde.org/Policies/Library_Code_Policy#Shared_D-Pointers

Gilles Caulier

#6 Updated by Andreas Huggel about 6 years ago

  • Status changed from Feedback to Resolved
  • Target version changed from 1.0 to 0.22
  • % Done changed from 80 to 100

#7 Updated by Andreas Huggel almost 6 years ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF

Redmine Appliance - Powered by TurnKey Linux