Subject: [Patch iproute2] ipaddress: do not add ifa_flags when not necessary

From: Cong Wang <[email-masked]>
Date: Thu, 3 Apr 2014 23:05:03 -0700

commit 37c9b94ed21d5779acc23d89a4 (add support for extended ifa_flags)
introduced a regression:

	# ./ip/ip addr add 192.168.0.1/24 dev eth0
	RTNETLINK answers: Invalid argument

This is due to old kernels don't support IFA_FLAGS flag, it should be skipped
if we don't use this feature at all.

Cc: Jiri Pirko <[email-masked]>
Cc: Stephen Hemminger <[email-masked]>
Signed-off-by: Cong Wang <[email-masked]>

---
diff --git a/ip/ipaddress.c b/ip/ipaddress.c
index 14d1720..71ae8f3 100644
--- a/ip/ipaddress.c
+++ b/ip/ipaddress.c
@@ -1398,8 +1398,10 @@ static int ipaddr_modify(int cmd, int flags, int argc, char **argv)
 		}
 		argc--; argv++;
 	}
-	req.ifa.ifa_flags = ifa_flags;
-	addattr32(&req.n, sizeof(req), IFA_FLAGS, ifa_flags);
+	if (ifa_flags) {
+		req.ifa.ifa_flags = ifa_flags;
+		addattr32(&req.n, sizeof(req), IFA_FLAGS, ifa_flags);
+	}
 
 	if (d == NULL) {
 		fprintf(stderr, "Not enough information: \"dev\" argument is required.\n");