From: Doug Goldstein Date: Tue, 26 Feb 2013 06:27:19 +0000 (-0600) Subject: interface: udev backend coverity NULL deref X-Git-Tag: v1.0.3-rc2~10 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=01207bb7033159949b984e8d699e947e4fb529bd;p=thirdparty%2Flibvirt.git interface: udev backend coverity NULL deref This fixes a potential NULL deref identified by John Ferlan if scandir() didn't return an expected value. --- diff --git a/src/interface/interface_backend_udev.c b/src/interface/interface_backend_udev.c index dca85b3f54..1132d9aa09 100644 --- a/src/interface/interface_backend_udev.c +++ b/src/interface/interface_backend_udev.c @@ -779,6 +779,13 @@ udevIfaceGetIfaceDefBond(struct udev *udev, * so we use the part after the _ */ tmp_str = strchr(slave_list[i]->d_name, '_'); + if (!tmp_str || strlen(tmp_str) < 2) { + virReportError(VIR_ERR_INTERNAL_ERROR, + _("Invalid enslaved interface name '%s' seen for " + "bond '%s'"), slave_list[i]->d_name, name); + goto cleanup; + } + /* go past the _ */ tmp_str++; ifacedef->data.bond.itf[i] =