Index | Thread | Search

From:
Claudio Jeker <cjeker@diehard.n-r-g.com>
Subject:
Use M_RTABLE for mpls route data
To:
tech@openbsd.org
Date:
Wed, 22 Apr 2026 17:08:57 +0200

Download raw body.

Thread
  • Claudio Jeker:

    Use M_RTABLE for mpls route data

The MPLS label info hooked into rt_llinfo is not temporary.
So do not use M_TEMP in malloc but instead M_RTABLE.

OK?
-- 
:wq Claudio

Index: net/route.c
===================================================================
RCS file: /cvs/src/sys/net/route.c,v
diff -u -p -r1.450 route.c
--- net/route.c	15 Sep 2025 13:51:24 -0000	1.450
+++ net/route.c	6 Nov 2025 09:34:39 -0000
@@ -1727,7 +1727,8 @@ rt_mpls_set(struct rtentry *rt, const st
 	if (psa_mpls != NULL && psa_mpls->smpls_family != AF_MPLS)
 		return (EAFNOSUPPORT);
 
-	rt->rt_llinfo = malloc(sizeof(struct rt_mpls), M_TEMP, M_NOWAIT|M_ZERO);
+	rt->rt_llinfo = malloc(sizeof(struct rt_mpls), M_RTABLE,
+	    M_NOWAIT|M_ZERO);
 	if (rt->rt_llinfo == NULL)
 		return (ENOMEM);
 
@@ -1745,7 +1746,7 @@ void
 rt_mpls_clear(struct rtentry *rt)
 {
 	if (rt->rt_llinfo != NULL && rt->rt_flags & RTF_MPLS) {
-		free(rt->rt_llinfo, M_TEMP, sizeof(struct rt_mpls));
+		free(rt->rt_llinfo, M_RTABLE, sizeof(struct rt_mpls));
 		rt->rt_llinfo = NULL;
 	}
 	rt->rt_flags &= ~RTF_MPLS;