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