提交 62efeb07 编写于 作者: D Daniel P. Berrange

Fixed memory corruption after destroying network/domain objects in QEMU driver

上级 f1f70e50
Fri Jul 6 17:50:00 EST 2007 Daniel P.Berrange <berrange@redhat.com>
* src/qemu_driver.c: Use virFreeDomain and virFreeNetwork
instead of free(), to ensure the objects are removed from
the cache
Fri Jul 6 16:19:00 BST 2007 Richard W.M. Jones <rjones@redhat.com> Fri Jul 6 16:19:00 BST 2007 Richard W.M. Jones <rjones@redhat.com>
* src/libvirt.c, src/qemu_driver.c: If the virNetworkLookup* * src/libvirt.c, src/qemu_driver.c: If the virNetworkLookup*
......
...@@ -1903,7 +1903,7 @@ static int qemudDomainDestroy(virDomainPtr dom) { ...@@ -1903,7 +1903,7 @@ static int qemudDomainDestroy(virDomainPtr dom) {
} }
ret = qemudShutdownVMDaemon(driver, vm); ret = qemudShutdownVMDaemon(driver, vm);
free(dom); virFreeDomain(dom->conn, dom);
return ret; return ret;
} }
...@@ -2332,6 +2332,7 @@ static int qemudNetworkStart(virNetworkPtr net) { ...@@ -2332,6 +2332,7 @@ static int qemudNetworkStart(virNetworkPtr net) {
static int qemudNetworkDestroy(virNetworkPtr net) { static int qemudNetworkDestroy(virNetworkPtr net) {
struct qemud_driver *driver = (struct qemud_driver *)net->conn->networkPrivateData; struct qemud_driver *driver = (struct qemud_driver *)net->conn->networkPrivateData;
struct qemud_network *network = qemudFindNetworkByUUID(driver, net->uuid); struct qemud_network *network = qemudFindNetworkByUUID(driver, net->uuid);
int ret;
if (!network) { if (!network) {
qemudReportError(net->conn, NULL, net, VIR_ERR_INVALID_NETWORK, qemudReportError(net->conn, NULL, net, VIR_ERR_INVALID_NETWORK,
...@@ -2339,7 +2340,11 @@ static int qemudNetworkDestroy(virNetworkPtr net) { ...@@ -2339,7 +2340,11 @@ static int qemudNetworkDestroy(virNetworkPtr net) {
return -1; return -1;
} }
return qemudShutdownNetworkDaemon(driver, network); ret = qemudShutdownNetworkDaemon(driver, network);
virFreeNetwork(net->conn, net);
return ret;
} }
static char *qemudNetworkDumpXML(virNetworkPtr net, int flags ATTRIBUTE_UNUSED) { static char *qemudNetworkDumpXML(virNetworkPtr net, int flags ATTRIBUTE_UNUSED) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册