summaryrefslogtreecommitdiff
path: root/lib/vrf.c
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetworks.com>2017-01-13 14:48:16 -0500
committerGitHub <noreply@github.com>2017-01-13 14:48:16 -0500
commit9aa7f43f7e7310c285f39a38ff36e1546c00058c (patch)
treecdcfdc0f188027cd77937c790895fc5926bb85dd /lib/vrf.c
parent386ea4d526de953f3648dfa286f77e5b0a8eef12 (diff)
parentb6f1faf04596242329d8ecd95b732f1d396e7823 (diff)
Merge branch 'master' into cleanup
Diffstat (limited to 'lib/vrf.c')
-rw-r--r--lib/vrf.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/vrf.c b/lib/vrf.c
index 14501c5265..ce8ffe75d5 100644
--- a/lib/vrf.c
+++ b/lib/vrf.c
@@ -381,7 +381,7 @@ vrf_bitmap_set (vrf_bitmap_t bmap, vrf_id_t vrf_id)
u_char group = VRF_BITMAP_GROUP (vrf_id);
u_char offset = VRF_BITMAP_BIT_OFFSET (vrf_id);
- if (bmap == VRF_BITMAP_NULL)
+ if (bmap == VRF_BITMAP_NULL || vrf_id == VRF_UNKNOWN)
return;
if (bm->groups[group] == NULL)
@@ -399,7 +399,8 @@ vrf_bitmap_unset (vrf_bitmap_t bmap, vrf_id_t vrf_id)
u_char group = VRF_BITMAP_GROUP (vrf_id);
u_char offset = VRF_BITMAP_BIT_OFFSET (vrf_id);
- if (bmap == VRF_BITMAP_NULL || bm->groups[group] == NULL)
+ if (bmap == VRF_BITMAP_NULL || vrf_id == VRF_UNKNOWN ||
+ bm->groups[group] == NULL)
return;
UNSET_FLAG (bm->groups[group][VRF_BITMAP_INDEX_IN_GROUP (offset)],
@@ -413,7 +414,8 @@ vrf_bitmap_check (vrf_bitmap_t bmap, vrf_id_t vrf_id)
u_char group = VRF_BITMAP_GROUP (vrf_id);
u_char offset = VRF_BITMAP_BIT_OFFSET (vrf_id);
- if (bmap == VRF_BITMAP_NULL || bm->groups[group] == NULL)
+ if (bmap == VRF_BITMAP_NULL || vrf_id == VRF_UNKNOWN ||
+ bm->groups[group] == NULL)
return 0;
return CHECK_FLAG (bm->groups[group][VRF_BITMAP_INDEX_IN_GROUP (offset)],