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

Reply via email to