From: Claudio Jeker Subject: Use M_RTABLE for mpls route data To: tech@openbsd.org Date: Wed, 22 Apr 2026 17:08:57 +0200 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;