summaryrefslogtreecommitdiff
path: root/unoxml
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2013-06-26 21:57:03 +0200
committerMichael Stahl <mstahl@redhat.com>2013-06-26 22:52:49 +0200
commit246a78b1d2a88ff1937b09b22325d160739ef47e (patch)
treef252db50600a9a848e11945fe71a1e84111335f9 /unoxml
parent6c1ac2fa0892b6316cf045e95e3645bde3d64872 (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')
-rw-r--r--unoxml/source/rdf/librdf_repository.cxx11
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);