From: Renato Westphal Date: Sat, 21 Oct 2017 12:24:21 +0000 (-0200) Subject: lib: fix coverity warnings introduced by the iface rb-tree conversion X-Git-Tag: frr-4.0-dev~191^2~5 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=5b8524f5c29d0fc8a5ea2f6355e90b85b3439709;p=matthieu%2Ffrr.git lib: fix coverity warnings introduced by the iface rb-tree conversion Signed-off-by: Renato Westphal --- diff --git a/lib/if.c b/lib/if.c index 320dfba4b5..0fe7da1c0d 100644 --- a/lib/if.c +++ b/lib/if.c @@ -194,7 +194,10 @@ void if_delete_retain(struct interface *ifp) /* Delete and free interface structure. */ void if_delete(struct interface *ifp) { - struct vrf *vrf = vrf_lookup_by_id(ifp->vrf_id); + struct vrf *vrf; + + vrf = vrf_lookup_by_id(ifp->vrf_id); + assert(vrf); IFNAME_RB_REMOVE(vrf, ifp); if (ifp->ifindex != IFINDEX_INTERNAL) @@ -213,9 +216,13 @@ void if_delete(struct interface *ifp) /* Interface existance check by index. */ struct interface *if_lookup_by_index(ifindex_t ifindex, vrf_id_t vrf_id) { - struct vrf *vrf = vrf_lookup_by_id(vrf_id); + struct vrf *vrf; struct interface if_tmp; + vrf = vrf_lookup_by_id(vrf_id); + if (!vrf) + return NULL; + if_tmp.ifindex = ifindex; return RB_FIND(if_index_head, &vrf->ifaces_by_index, &if_tmp); } @@ -244,7 +251,8 @@ struct interface *if_lookup_by_name(const char *name, vrf_id_t vrf_id) struct vrf *vrf = vrf_lookup_by_id(vrf_id); struct interface if_tmp; - if (!name || strnlen(name, INTERFACE_NAMSIZ) == INTERFACE_NAMSIZ) + if (!vrf || !name + || strnlen(name, INTERFACE_NAMSIZ) == INTERFACE_NAMSIZ) return NULL; strlcpy(if_tmp.name, name, sizeof(if_tmp.name)); @@ -388,7 +396,10 @@ struct interface *if_get_by_name(const char *name, vrf_id_t vrf_id, int vty) void if_set_index(struct interface *ifp, ifindex_t ifindex) { - struct vrf *vrf = vrf_lookup_by_id(ifp->vrf_id); + struct vrf *vrf; + + vrf = vrf_lookup_by_id(ifp->vrf_id); + assert(vrf); if (ifp->ifindex == ifindex) return;