aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander V. Chernikov <melifaro@FreeBSD.org>2021-03-29 23:00:17 +0000
committerAlexander V. Chernikov <melifaro@FreeBSD.org>2021-03-30 07:34:31 +0000
commit923e7f7e12670e97b097a195e69c848a6e8773a2 (patch)
treec1f0b3235a08ad3ccc402feada966266cd5cb89f
parent77ffc9399dadaf5d512f3f3e4d51c30edfed2c2a (diff)
downloadsrc-923e7f7e12670e97b097a195e69c848a6e8773a2.tar.gz
src-923e7f7e12670e97b097a195e69c848a6e8773a2.zip
Fix nexhtop group index array scaling.
The current code has the limit of 127 nexthop groups due to the wrongly-checked bitmask_copy() return value. PR: 254303 Reported by: Aleks <a.ivanov at veesp.com> (cherry picked from commit 9095dc7da4cf0c484fb1160b2180b7329b09b107)
-rw-r--r--sys/net/route/nhgrp.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/net/route/nhgrp.c b/sys/net/route/nhgrp.c
index c25f4f09865b..f6638b12ebea 100644
--- a/sys/net/route/nhgrp.c
+++ b/sys/net/route/nhgrp.c
@@ -243,8 +243,8 @@ consider_resize(struct nh_control *ctl, uint32_t new_nh_buckets, uint32_t new_id
CHT_SLIST_RESIZE(&ctl->gr_head, mpath, nh_ptr, new_nh_buckets);
}
if (nh_idx_ptr != NULL) {
- if (bitmask_copy(&ctl->gr_idx_head, nh_idx_ptr, new_idx_items))
- bitmask_swap(&ctl->nh_idx_head, nh_idx_ptr, new_idx_items, &old_idx_ptr);
+ if (bitmask_copy(&ctl->gr_idx_head, nh_idx_ptr, new_idx_items) == 0)
+ bitmask_swap(&ctl->gr_idx_head, nh_idx_ptr, new_idx_items, &old_idx_ptr);
}
NHOPS_WUNLOCK(ctl);