Initialize locator and locator_match to zero and only do
addattr if they have been set.
Signed-off-by: Tom Herbert
---
ip/ipila.c | 11 +++
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/ip/ipila.c b/ip/ipila.c
index c30bdbf..57f8c79 100644
--- a/ip/ipila.c
+++ b/ip/ipila.c
@@ -149,8 +149,8 @@ static int do_list(int argc, char **argv)
static int ila_parse_opt(int argc, char **argv, struct nlmsghdr *n,
bool adding)
{
- __u64 locator;
- __u64 locator_match;
+ __u64 locator = 0;
+ __u64 locator_match = 0;
int ifindex = 0;
bool loc_set = false;
bool loc_match_set = false;
@@ -202,8 +202,11 @@ static int ila_parse_opt(int argc, char **argv, struct
nlmsghdr *n,
}
}
- addattr64(n, 1024, ILA_ATTR_LOCATOR_MATCH, locator_match);
- addattr64(n, 1024, ILA_ATTR_LOCATOR, locator);
+ if (loc_match_set)
+ addattr64(n, 1024, ILA_ATTR_LOCATOR_MATCH, locator_match);
+
+ if (loc_set)
+ addattr64(n, 1024, ILA_ATTR_LOCATOR, locator);
if (ifindex_set)
addattr32(n, 1024, ILA_ATTR_IFINDEX, ifindex);
--
2.8.0.rc2