Initialize locator and locator_match to zero and only do addattr if they have been set.
Signed-off-by: Tom Herbert <t...@herbertland.com> --- 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