[libvirt] [PATCH 3/5] add XML parsing for vm status file

Daniel P. Berrange berrange at redhat.com
Thu Dec 18 10:23:39 UTC 2008


On Thu, Dec 18, 2008 at 10:34:03AM +0100, Guido G?nther wrote:
> On Mon, Dec 15, 2008 at 10:25:27AM +0100, Daniel Veillard wrote:
> > On Fri, Dec 12, 2008 at 07:26:51PM +0100, Guido Günther wrote:
> > > Functions to read and write vm status in $(statedir)/qemu/<domain>.xml.
> > > Keeps the necessary to reconnect to a running domain state within
> > > <domstate>...</domstate>. I kept most of the code in qemu_config.c for
> > > now. We can easily move it should another hypervisor need to do
> > > something similar.
> > [...]
> > > +static char*
> > > +qemudDomainStatusFormat(virConnectPtr conn,
> > > +                        virDomainObjPtr vm)
> > > +{
> > > +    char *config_xml = NULL, *xml = NULL;
> > > +    virBuffer buf = VIR_BUFFER_INITIALIZER;
> > > +
> > > +    virBufferVSprintf(&buf, "<domstatus state='%d' pid='%d'>\n", vm->state, vm->pid);
> > > +    virBufferVSprintf(&buf, "  <monitor path='%s'/>\n", vm->monitorpath);
> > 
> >   I would use virBufferEscapeString here, even if by default the path
> > should not contain characters needing escaping, I think it's safer.
> O.k. done.
> > 
> > > +    if (!(config_xml = virDomainDefFormat(conn,
> > > +                                          vm->def,
> > > +                                          VIR_DOMAIN_XML_SECURE)))
> > > +        goto cleanup;
> > > +
> > > +    virBufferVSprintf(&buf, "%s", config_xml);
> > 
> >   Same thing here.
> This one comes straight out of virDomainDefFormat so it should have
> everything escaped nicely so shouldn't virBufferVSprintf be safe here?

No, not guarenteed to be safe because the 'config_xml' string could 
contain '%' sequences that'll be interpreted by sprintf. In any case
why not just use

   virBufferAdd(&buf, config_xml)

Daniel
-- 
|: Red Hat, Engineering, London   -o-   http://people.redhat.com/berrange/ :|
|: http://libvirt.org  -o-  http://virt-manager.org  -o-  http://ovirt.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505  -o-  F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|




More information about the libvir-list mailing list