Date: Fri, 03 Jan 2014 21:26:58 +0400 From: "Alexander V. Chernikov" <melifaro@FreeBSD.org> To: Nikolay Denev <ndenev@gmail.com> Cc: "freebsd-net@freebsd.org" <freebsd-net@freebsd.org>, freebsd-bugs@freebsd.org, FreeBSD-gnats-submit@freebsd.org Subject: Re: misc/185092: panic: rtfree 2 (using RADIX_MPATH in a VNET jail) Message-ID: <52C6F2E2.4000709@FreeBSD.org> In-Reply-To: <CA%2BP_MZGmZqeFjn73zXMN0_TrshAY6wRwx=75t8FbXHrj=eggig@mail.gmail.com> References: <201312221304.rBMD4q38060416@oldred.freebsd.org> <201312221310.rBMDA0KH022980@freefall.freebsd.org> <CA%2BP_MZHrGB0OdddCmhpOptA-sBUHOERCdjSfUFh20pJOQsZ7Kw@mail.gmail.com> <CA%2BP_MZEqn4iK%2BWC-ouVNFEhMrq2tpH91qgcT5zJyaUnX%2BkVn1g@mail.gmail.com> <CA%2BP_MZF4pMYqXV-BbrVfUjirfD7=qzr5Nz=k1NvOz6_wmT4GrQ@mail.gmail.com> <CA%2BP_MZGmZqeFjn73zXMN0_TrshAY6wRwx=75t8FbXHrj=eggig@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
Please check if attached patch solves your issues.
This fix is temporary, more proper one is on the way.
[-- Attachment #2 --]
Index: route.c
===================================================================
--- route.c (revision 260226)
+++ route.c (working copy)
@@ -943,9 +992,20 @@
register struct radix_node *rn;
int error = 0;
- rn = rnh->rnh_matchaddr(dst, rnh);
+ rn = rnh->rnh_lookup(dst, netmask, rnh);
if (rn == NULL)
return (ESRCH);
+
+ if (netmask == NULL) {
+ /*
+ * Check 'perfect match' case
+ */
+ if (!sa_equal(dst, rn->rn_key))
+ return (ESRCH);
+ if (rn->rn_mask != NULL)
+ return (ESRCH);
+ }
+
rto = rt = RNTORT(rn);
rt = rt_mpath_matchgate(rt, gateway);
if (rt == NULL)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?52C6F2E2.4000709>
