diff options
author | Michael Stahl <mstahl@redhat.com> | 2013-06-26 21:57:03 +0200 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2013-06-26 22:52:49 +0200 |
commit | 246a78b1d2a88ff1937b09b22325d160739ef47e (patch) | |
tree | f252db50600a9a848e11945fe71a1e84111335f9 /unoxml/source | |
parent | 6c1ac2fa0892b6316cf045e95e3645bde3d64872 (diff) |
fdo#64672 prevent raptor from setting global libxml2 error handlers
Raptor already sets up all 4 error handlers in xmlSAXHandler so why it
would need the global ones in addition to that is a mystery anyway.
Messing with libxml2's globals can only cause trouble.
Change-Id: I2935efe5c4cd75d48cc4ecdeaa8437e91b48349e
Diffstat (limited to 'unoxml/source')
-rw-r--r-- | unoxml/source/rdf/librdf_repository.cxx | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/unoxml/source/rdf/librdf_repository.cxx b/unoxml/source/rdf/librdf_repository.cxx index ab202d15d015..477b592a56d1 100644 --- a/unoxml/source/rdf/librdf_repository.cxx +++ b/unoxml/source/rdf/librdf_repository.cxx @@ -1897,6 +1897,16 @@ librdf_Repository::getStatementsGraph( return new librdf_GraphResult(this, m_aMutex, pStream, pContext); } +extern "C" +void librdf_raptor_init(void* /*user_data*/, raptor_world* pRaptorWorld) +{ + // fdo#64672 prevent raptor from setting global libxml2 error handlers + raptor_world_set_flag(pRaptorWorld, + RAPTOR_WORLD_FLAG_LIBXML_STRUCTURED_ERROR_SAVE, 0); + raptor_world_set_flag(pRaptorWorld, + RAPTOR_WORLD_FLAG_LIBXML_GENERIC_ERROR_SAVE, 0); +} + librdf_world *librdf_TypeConverter::createWorld() const { // create and initialize world @@ -1906,6 +1916,7 @@ librdf_world *librdf_TypeConverter::createWorld() const "librdf_TypeConverter::createWorld: librdf_new_world failed", m_rRep); } + librdf_world_set_raptor_init_handler(pWorld, 0, &librdf_raptor_init); //FIXME logger, digest, features? xsltSecurityPrefsPtr origprefs = xsltGetDefaultSecurityPrefs(); librdf_world_open(pWorld); |