[libvirt] [PATCH 05/22] pci: make virPCIDeviceDetach consistent in behavior

Laine Stump laine at laine.org
Mon Jun 24 21:44:52 UTC 2013


On 06/24/2013 10:57 AM, Daniel P. Berrange wrote:
> On Mon, Jun 24, 2013 at 05:54:54AM -0400, Laine Stump wrote:
>> virPCIDeviceDetach would previously sometimes consume the input device
>> object (to put it on the inactive list) and sometimes not. Avoiding
>> memory leaks required checking beforehand to see if the device was
>> already on the list, and freeing the device object in the caller only
>> if there wasn't already an identical object on the inactive list.
>>
>> This patch makes it consistent - virPCIDeviceDetach will *never*
>> consume the input virPCIDevice object; if it needs to put one on the
>> inactive list, it will create a copy and put *that* on the list. This
>> way the caller knows that it is always their responsibility to free
>> the device object they created.
>> ---
>>  src/qemu/qemu_driver.c |  8 +++-----
>>  src/util/virpci.c      | 26 ++++++++++++++++++++++++--
>>  2 files changed, 27 insertions(+), 7 deletions(-)
> ACK much safer semantics.

I'm frankly surprised we don't have more crashes in this code.

I've pushed this now.




More information about the libvir-list mailing list