session: fix coverity warnings 92/9092/1
authorFlorin Coras <fcoras@cisco.com>
Sun, 29 Oct 2017 17:56:15 +0000 (10:56 -0700)
committerFlorin Coras <fcoras@cisco.com>
Sun, 29 Oct 2017 17:56:15 +0000 (10:56 -0700)
Change-Id: Ib87eccb853cafceea5f5513f6bb51c2364449afa
Signed-off-by: Florin Coras <fcoras@cisco.com>
src/vnet/ip/ip.c
src/vnet/session/session_rules_table.c

index e6d9934..ac7727a 100644 (file)
@@ -228,15 +228,20 @@ ip6_prefix_max_address_host_order (ip6_address_t * ip, u8 plen,
                                   ip6_address_t * res)
 {
   u64 not_mask;
-  if (plen <= 64)
+  if (plen == 0)
     {
-      not_mask = (1 << (64 - plen)) - 1;
+      res->as_u64[0] = 0xffffffffffffffffL;
+      res->as_u64[1] = 0xffffffffffffffffL;
+    }
+  else if (plen <= 64)
+    {
+      not_mask = ((u64) 1 << (64 - plen)) - 1;
       res->as_u64[0] = clib_net_to_host_u64 (ip->as_u64[0]) + not_mask;
       res->as_u64[1] = 0xffffffffffffffffL;
     }
   else
     {
-      not_mask = (1 << (128 - plen)) - 1;
+      not_mask = ((u64) 1 << (128 - plen)) - 1;
       res->as_u64[1] = clib_net_to_host_u64 (ip->as_u64[1]) + not_mask;
     }
 }
index fb43311..685871d 100644 (file)
@@ -298,8 +298,8 @@ session_rules_table_lookup6 (session_rules_table_t * srt, u8 transport_proto,
     .lcl_port = lcl_port,
     .rmt_port = rmt_port,
   };
-  clib_memcpy (&key.lcl_ip, &lcl_ip, sizeof (&lcl_ip));
-  clib_memcpy (&key.rmt_ip, &rmt_ip, sizeof (&rmt_ip));
+  clib_memcpy (&key.lcl_ip, lcl_ip, sizeof (*lcl_ip));
+  clib_memcpy (&key.rmt_ip, rmt_ip, sizeof (*rmt_ip));
   return mma_rules_table_lookup_40 (srt6,
                                    (mma_mask_or_match_40_t *) & key,
                                    srt6->root_index);
@@ -373,8 +373,8 @@ session_rules_table_show_rule (vlib_main_t * vm, session_rules_table_t * srt,
        .lcl_port = lcl_port,
        .rmt_port = rmt_port,
       };
-      clib_memcpy (&key.lcl_ip, &lcl_ip->ip6, sizeof (&lcl_ip->ip6));
-      clib_memcpy (&key.rmt_ip, &rmt_ip->ip6, sizeof (&rmt_ip->ip6));
+      clib_memcpy (&key.lcl_ip, &lcl_ip->ip6, sizeof (lcl_ip->ip6));
+      clib_memcpy (&key.rmt_ip, &rmt_ip->ip6, sizeof (rmt_ip->ip6));
       ri =
        mma_rules_table_lookup_rule_40 (srt6,
                                        (mma_mask_or_match_40_t *) &