diff options
author | Neale Ranns <nranns@cisco.com> | 2016-12-02 15:41:03 +0000 |
---|---|---|
committer | Damjan Marion <dmarion.lists@gmail.com> | 2016-12-02 20:52:56 +0000 |
commit | 3b222a35e2f343ff70fb03db31dd866d548e32b3 (patch) | |
tree | 730a7c5390cfaa10ef9936d83b96739bb098addb | |
parent | df1059f057065b06287b7b94613cc11debd158f3 (diff) |
Coverity errors in MPLS code
Change-Id: I3f98e3c30e29198cb8701bfb846ce194b7250ed7
Signed-off-by: Neale Ranns <nranns@cisco.com>
-rw-r--r-- | vnet/vnet/mpls/mpls_tunnel.c | 15 | ||||
-rw-r--r-- | vpp/vpp-api/api.c | 3 |
2 files changed, 14 insertions, 4 deletions
diff --git a/vnet/vnet/mpls/mpls_tunnel.c b/vnet/vnet/mpls/mpls_tunnel.c index 6ad11e32..8d1e30a3 100644 --- a/vnet/vnet/mpls/mpls_tunnel.c +++ b/vnet/vnet/mpls/mpls_tunnel.c @@ -104,7 +104,12 @@ mpls_tunnel_build_rewrite (vnet_main_t * vnm, mti = mpls_tunnel_db[sw_if_index]; mt = pool_elt_at_index(mpls_tunnel_pool, mti); + /* + * The vector must be allocated as u8 so the length is correct + */ + ASSERT(0 < vec_len(mt->mt_label_stack)); vec_validate(rewrite, (sizeof(*muh) * vec_len(mt->mt_label_stack)) - 1); + ASSERT(rewrite); muh = (mpls_unicast_header_t *)rewrite; /* @@ -123,15 +128,19 @@ mpls_tunnel_build_rewrite (vnet_main_t * vnm, vnet_mpls_uc_set_ttl(&muh[ii].label_exp_s_ttl, 255); vnet_mpls_uc_set_exp(&muh[ii].label_exp_s_ttl, 0); - if (VNET_LINK_MPLS == link_type && - mt->mt_label_stack[ii] != MPLS_IETF_IMPLICIT_NULL_LABEL) + if ((VNET_LINK_MPLS == link_type) && + (mt->mt_label_stack[ii] != MPLS_IETF_IMPLICIT_NULL_LABEL)) + { vnet_mpls_uc_set_s(&muh[ii].label_exp_s_ttl, MPLS_NON_EOS); + } else + { vnet_mpls_uc_set_s(&muh[ii].label_exp_s_ttl, MPLS_EOS); + } muh[ii].label_exp_s_ttl = clib_host_to_net_u32(muh[ii].label_exp_s_ttl); - return ((u8*)muh); + return (rewrite); } /** diff --git a/vpp/vpp-api/api.c b/vpp/vpp-api/api.c index c110769b..b778d3ca 100644 --- a/vpp/vpp-api/api.c +++ b/vpp/vpp-api/api.c @@ -2149,7 +2149,8 @@ vl_api_mpls_tunnel_add_del_t_handler (vl_api_mpls_tunnel_add_del_t * mp) } else { - vnet_mpls_tunnel_del (ntohl (mp->mt_sw_if_index)); + tunnel_sw_if_index = ntohl (mp->mt_sw_if_index); + vnet_mpls_tunnel_del (tunnel_sw_if_index); } dsunlock (sm); |