From a3d24862df9d717b95fae3951019fa150a9d4e09 Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Wed, 4 Sep 2013 17:32:12 +0200 Subject: [PATCH] conf: Don't deref NULL actual network in virDomainNetGetActualHostdev() In commit 991270db99690 I've used virDomainNetGetActualHostdev() to get the actual hostdev from a network when removing the network from the list to avoid leaving the hostdev in the list. I didn't notice that this function doesn't check if the actual network is allocated and dereferences it. This crashes the daemon when cleaning up a domain object in early startup phases when the actual network definition isn't allocated. When the actual definition isn't present, the hostdev that might correspond to it won't be present anyways so it's safe to return NULL. Thanks to Cole Robinson for noticing this problem. --- src/conf/domain_conf.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index cef4cf948f..276c6bac8d 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -17875,6 +17875,7 @@ virDomainNetGetActualHostdev(virDomainNetDefPtr iface) if (iface->type == VIR_DOMAIN_NET_TYPE_HOSTDEV) return &iface->data.hostdev.def; if (iface->type == VIR_DOMAIN_NET_TYPE_NETWORK && + iface->data.network.actual && iface->data.network.actual->type == VIR_DOMAIN_NET_TYPE_HOSTDEV) { return &iface->data.network.actual->data.hostdev.def; }