[libvirt] [PATCH V9 2/3] Introduce file descriptor set for QEMU domains
Eric Blake
eblake at redhat.com
Fri Mar 8 00:24:00 UTC 2013
On 03/07/2013 11:14 AM, Stefan Berger wrote:
> Extend the QEMU private domain structure with virFdSet.
> Persist the virFdSet using XML and parse its XML.
> Free the FdSet upon domain stop.
>
> Signed-off-by: Stefan Berger <stefanb at linux.vnet.ibm.com>
>
> ---
> Index: libvirt/src/qemu/qemu_domain.c
> ===================================================================
> --- libvirt.orig/src/qemu/qemu_domain.c
> +++ libvirt/src/qemu/qemu_domain.c
> @@ -252,6 +252,7 @@ static void qemuDomainObjPrivateFree(voi
> qemuAgentClose(priv->agent);
> }
> VIR_FREE(priv->cleanupCallbacks);
> + virObjectUnref(priv->fdset);
> VIR_FREE(priv);
> }
>
> @@ -326,6 +327,10 @@ static int qemuDomainObjPrivateXMLFormat
> if (priv->fakeReboot)
> virBufferAsprintf(buf, " <fakereboot/>\n");
>
> + virBufferAdjustIndent(buf, 2);
> + virFdSetFormatXML(priv->fdset, buf);
Oops - potential NULL deref - virFdSetParseXML requires a non-null arg,
but you haven't yet added in the code that guarantees that priv->fdset
exists on a running domain (and for an offline domain, you are
intentionally leaving priv->fdset NULL).
Still, I can fix it, so ACK, and no need to send a v10, depending on how
3/3 fares:
diff --git i/src/qemu/qemu_domain.c w/src/qemu/qemu_domain.c
index cfd4b8e..22c7ade 100644
--- i/src/qemu/qemu_domain.c
+++ w/src/qemu/qemu_domain.c
@@ -327,9 +327,11 @@ static int
qemuDomainObjPrivateXMLFormat(virBufferPtr buf, void *data)
if (priv->fakeReboot)
virBufferAsprintf(buf, " <fakereboot/>\n");
- virBufferAdjustIndent(buf, 2);
- virFdSetFormatXML(priv->fdset, buf);
- virBufferAdjustIndent(buf, -2);
+ if (priv->fdset) {
+ virBufferAdjustIndent(buf, 2);
+ virFdSetFormatXML(priv->fdset, buf);
+ virBufferAdjustIndent(buf, -2);
+ }
return 0;
}
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 621 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20130307/802fc88e/attachment-0001.sig>
More information about the libvir-list
mailing list