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-31 20:00:10 +0000
commitb7fbdb5042c619221ee0b97573affcb8bcb59458 (patch)
tree2381cf4526f406b73b4c69d05ae3b74798855aa0
parent40d278253d205f35ec368c93b7400baddda1b81e (diff)
downloadsrc-b7fbdb5042c619221ee0b97573affcb8bcb59458.tar.gz
src-b7fbdb5042c619221ee0b97573affcb8bcb59458.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> Approved by: re (gjb) (cherry picked from commit 923e7f7e12670e97b097a195e69c848a6e8773a2)
-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);