DragonFlyBSD Kernel Audit
DF-0496 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/net/radix.c b/sys/net/radix.c
--- a/sys/net/radix.c
+++ b/sys/net/radix.c
@@ -1072,6 +1072,8 @@
  * This is the same as rn_walktree() except for the parameters and the
  * exit.
  */
+static int	rn_walktree_at(struct radix_node_head *, const void *,
+		    const void *, walktree_f_t *, void *);
 static int
 rn_walktree_from(struct radix_node_head *h, const void *_addr,
 		 const void *_mask, walktree_f_t *f, void *w)
@@ -1083,6 +1085,8 @@
 
 	addr = _addr;
 	mask = _mask;
+	if (mask == NULL)
+		return rn_walktree_at(h, addr, NULL, f, w);
 	last = NULL;
 	stopping = false;