From 246a78b1d2a88ff1937b09b22325d160739ef47e Mon Sep 17 00:00:00 2001 From: Michael Stahl Date: Wed, 26 Jun 2013 21:57:03 +0200 Subject: 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 --- unoxml/source/rdf/librdf_repository.cxx | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'unoxml') 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); -- cgit