From 145ca12d22a40a9136ba6cd1ce434d3d044bddea Mon Sep 17 00:00:00 2001 From: "Alexander V. Chernikov" Date: Mon, 29 Mar 2021 23:12:11 +0000 Subject: [PATCH] Put bandaid for nhgrp_dump_sysctl() malloc KASSERT(). Recent rtsock changes widened epoch and covered nhgrp_dump_sysctl(), resulting in `netstat -4On` triggering with KASSERT. (cherry picked from commit 9fa8d1582b44b4850d40699c9adb104732328b7d) --- sys/net/route/nhgrp_ctl.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sys/net/route/nhgrp_ctl.c b/sys/net/route/nhgrp_ctl.c index b228c3bcee3..49866499ac8 100644 --- a/sys/net/route/nhgrp_ctl.c +++ b/sys/net/route/nhgrp_ctl.c @@ -806,7 +806,9 @@ nhgrp_dump_sysctl(struct rib_head *rh, struct sysctl_req *w) sz = sizeof(struct rt_msghdr) + sizeof(struct nhgrp_external); sz += 2 * sizeof(struct nhgrp_container); sz += 2 * sizeof(struct nhgrp_nhop_external) * RIB_MAX_MPATH_WIDTH; - buffer = malloc(sz, M_TEMP, M_WAITOK); + buffer = malloc(sz, M_TEMP, M_NOWAIT); + if (buffer == NULL) + return (ENOMEM); NET_EPOCH_ENTER(et); NHOPS_RLOCK(ctl);