提交 f962e8b6 编写于 作者: L Laine Stump

pci: eliminate memory leak in virPCIDeviceReattach

virPCIDeviceReattach was making the assumption that the dev object
given to it was one and the same with the dev object on the
inactiveDevs list. If that had been the case, it would not need to
free the dev object it removed from the inactive list, because the
caller of virPCIDeviceReattach always frees the dev object that it
passes in. Since the dev object passed in is *never* the same object
that's on the list (it is a different object with the same name and
attributes, created just for the purpose of searching for the actual
object), simply doing a "ListSteal" to remove the object from the list
results in one leaked object; we need to actually free the object
after removing it from the list.
上级 50a8d850
...@@ -1266,7 +1266,7 @@ virPCIDeviceReattach(virPCIDevicePtr dev, ...@@ -1266,7 +1266,7 @@ virPCIDeviceReattach(virPCIDevicePtr dev,
/* Steal the dev from list inactiveDevs */ /* Steal the dev from list inactiveDevs */
if (inactiveDevs) if (inactiveDevs)
virPCIDeviceListSteal(inactiveDevs, dev); virPCIDeviceListDel(inactiveDevs, dev);
return 0; return 0;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册