
On 06/21/2013 07:30 PM, Ján Tomko wrote:
Commit b9c6b073 dropped the version of virNetDevSetupControl that didn't check for NULL arguments, but we call it like that in virNetDevBridgeDelete. --- src/util/virnetdev.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c index 7aba515..ebe20d0 100644 --- a/src/util/virnetdev.c +++ b/src/util/virnetdev.c @@ -62,13 +62,15 @@ static int virNetDevSetupControlFull(const char *ifname, { int fd;
- memset(ifr, 0, sizeof(*ifr)); + if (ifr && ifname) { + memset(ifr, 0, sizeof(*ifr));
- if (virStrcpyStatic(ifr->ifr_name, ifname) == NULL) { - virReportSystemError(ERANGE, - _("Network interface name '%s' is too long"), - ifname); - return -1; + if (virStrcpyStatic(ifr->ifr_name, ifname) == NULL) { + virReportSystemError(ERANGE, + _("Network interface name '%s' is too long"), + ifname); + return -1; + } }
if ((fd = socket(domain, type, 0)) < 0) {
I missed this: diff --git a/src/util/virnetdev.h b/src/util/virnetdev.h index 933a9b3..44a37ca 100644 --- a/src/util/virnetdev.h +++ b/src/util/virnetdev.h @@ -38,7 +38,7 @@ typedef void virIfreq; int virNetDevSetupControl(const char *ifname, virIfreq *ifr) - ATTRIBUTE_RETURN_CHECK ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2); + ATTRIBUTE_RETURN_CHECK; int virNetDevExists(const char *brname) ATTRIBUTE_NONNULL(1) ATTRIBUTE_RETURN_CHECK; Jan