]> git.proxmox.com Git - mirror_frr.git/commitdiff
lib: fix coverity warnings introduced by the iface rb-tree conversion
authorRenato Westphal <renato@opensourcerouting.org>
Sat, 21 Oct 2017 12:24:21 +0000 (10:24 -0200)
committerRenato Westphal <renato@opensourcerouting.org>
Tue, 24 Oct 2017 20:26:02 +0000 (18:26 -0200)
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
lib/if.c

index 320dfba4b5a5be695ce91217c496dbb73567fc01..0fe7da1c0d532dfa72ccff91539f49d83b3e22ae 100644 (file)
--- 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;