[virt-tools-list] [libosinfo PATCH] Fix libxml error reporting

Christophe Fergeau cfergeau at redhat.com
Fri Nov 25 15:30:29 UTC 2011


Hey,

On Fri, Nov 25, 2011 at 03:14:42PM +0100, Guido Günther wrote:
> On Fri, Nov 25, 2011 at 01:34:02PM +0100, Christophe Fergeau wrote:
> > On Fri, Nov 25, 2011 at 09:30:27AM +0100, Guido Günther wrote:
> > > On Fri, Nov 18, 2011 at 11:03:41PM +0100, Guido Günther wrote:
> > > > The error code might be set in catchXMLError so make sure we don't miss
> > > > it. Otherwise this results in errors like:
> > > > 
> > > > /usr/lib/python2.7/dist-packages/gi/types.py:43: Warning: GError set over the top of a previous GError or uninitialized memory.
> > > > This indicates a bug in someone's code. You must ensure an error is NULL before it's set.
> > > > The overwriting error message was: Incorrect root element
> > > 
> > > Can this be appplied?
> > 
> > Relooking at this, I'm a bit surprised that it's possible to have
> > catchXMLError be called and to get a non NULL xml document returned. How
> > are you triggering this condition ?
> 
> By running demo.py from the topleveldir of the source tree (instead of
> from inside examples/):

Ah ok, thanks. It seems parsing errors are being reported but that they are
non-fatal. Which means it might be better to just clear the GError when a
parsed document is returned by xmlCtxtReadDoc:

diff --git a/osinfo/osinfo_loader.c b/osinfo/osinfo_loader.c
index ca634f8..df319c4 100644
--- a/osinfo/osinfo_loader.c
+++ b/osinfo/osinfo_loader.c
@@ -826,6 +826,8 @@ static void osinfo_loader_process_xml(OsinfoLoader
*loader,
     if (!xml)
         goto cleanup;
 
+    g_clear_error(err);
+
     root = xmlDocGetRootElement(xml);
 
     if (!root) {

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/virt-tools-list/attachments/20111125/a85ce548/attachment.sig>


More information about the virt-tools-list mailing list