map: fix coverity issue 205684 00/23500/2
authorAndrew Yourtchenko <ayourtch@gmail.com>
Mon, 18 Nov 2019 10:37:24 +0000 (10:37 +0000)
committerOle Trøan <otroan@employees.org>
Tue, 19 Nov 2019 03:43:57 +0000 (03:43 +0000)
ip4_map_get_domain returns d0 = 0 in case of no domain,
and sets error MAP_ERROR_NO_DOMAIN. Rearrange the clauses
in the logical check that relies on dereferencing d0
such that boolean shortcutting takes care of not
referencing the null pointer.

Change-Id: I378adc120836ea920fc530808ac3c1f98ab8d593
Type: fix
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
src/plugins/map/ip6_map.c

index 47958f9..899371e 100644 (file)
@@ -618,8 +618,8 @@ ip6_map_post_ip4_reass (vlib_main_t * vm,
              MAP_ERROR_DECAP_SEC_CHECK;
 
          if (PREDICT_FALSE
-             (d0->mtu && (clib_host_to_net_u16 (ip40->length) > d0->mtu)
-              && error0 == MAP_ERROR_NONE))
+             (error0 == MAP_ERROR_NONE &&
+              d0->mtu && (clib_host_to_net_u16 (ip40->length) > d0->mtu)))
            {
              vnet_buffer (p0)->ip_frag.flags = 0;
              vnet_buffer (p0)->ip_frag.next_index = IP_FRAG_NEXT_IP4_LOOKUP;