• Stephan Bergmann's avatar
    Do not call xmlCleanupParser from liblangtag · 5e6c595e
    Stephan Bergmann yazdı
    Despite its name, it is a cleanup function for libxml2 that must only be called
    when the process as a whole no longer needs libxml2.  Calling it from a library
    like liblangtag is not appropriate (just like liblangtag does not call
    xmlInitParser, either).
    
    In LibreOffice, this caused confusion about pthread keys for thread-local
    storage (xmlCleanupParser calls pthread_key_delete, but apparently if libxml2 is
    later used by unrelated code in LibreOffice again, it still uses the stale key,
    and if that key is now reused via an unrelated pthread_key_create, arbitrary
    crashes happen during thread termination in pthread's __nptl_deallocate_tsd).
    
    Change-Id: I82cef8bc400d48f19eaa94f26d50d4b8589da106
    5e6c595e
liblangtag-0.2-xmlCleanupParser.patch 486 Bytes