On Mon, May 04, 2009 at 03:08:20PM -0400, Cole Robinson wrote:
Daniel P. Berrange wrote:
> On Tue, Apr 28, 2009 at 12:25:41PM -0400, Cole Robinson wrote:
>
>
>> diff --git a/src/qemu_driver.c b/src/qemu_driver.c
>> index 79ee072..6b5c17f 100644
>> --- a/src/qemu_driver.c
>> +++ b/src/qemu_driver.c
>> @@ -1872,10 +1872,12 @@ static int qemudGetNodeInfo(virConnectPtr conn,
>>
>> static char *qemudGetCapabilities(virConnectPtr conn) {
>> struct qemud_driver *driver = conn->privateData;
>> - char *xml;
>> + char *xml = NULL;
>>
>> qemuDriverLock(driver);
>> - if ((xml = virCapabilitiesFormatXML(driver->caps)) == NULL)
>> + virCapabilitiesFree(qemu_driver->caps);
>> + if ((qemu_driver->caps = qemudCapsInit()) == NULL ||
>> + (xml = virCapabilitiesFormatXML(driver->caps)) == NULL)
>> virReportOOMError(conn);
>> qemuDriverUnlock(driver);
>
> The thing to be wary of now, is that all use of driver->caps needs
> to be protected by the driver mutex. Most usages are OK, but I
> spotted a couple that are not.
>
> Daniel
Okay, updated patch attached. The only unsafe caps usage I found was in
qemudNodeGetSecurityModel, not sure if you spotted any others.
That patch looks fine to me, any reason not to apply it ?
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit
http://xmlsoft.org/
daniel(a)veillard.com | Rpmfind RPM search engine
http://rpmfind.net/
http://veillard.com/ | virtualization library
http://libvirt.org/