summaryrefslogtreecommitdiffstats
path: root/sys/netinet6
diff options
context:
space:
mode:
authorglebius <glebius@FreeBSD.org>2005-08-11 08:14:53 +0000
committerglebius <glebius@FreeBSD.org>2005-08-11 08:14:53 +0000
commitfa253399af72f4968a7eddd5210066700b92d2c0 (patch)
treedecf2e9a9a44b246a6d6dd15b016ed79b3b91a61 /sys/netinet6
parente0688f129366b4f89acf47c45af55135dc0609ae (diff)
downloadFreeBSD-src-fa253399af72f4968a7eddd5210066700b92d2c0.zip
FreeBSD-src-fa253399af72f4968a7eddd5210066700b92d2c0.tar.gz
o Make rt_check() function more strict:
- rt0 passed to rt_check() must not be NULL, assert this. - rt returned by rt_check() must be valid locked rtentry, if no error occured. o Modify callers, so that they never pass NULL rt0 to rt_check(). Reviewed by: sam, ume (nd6.c)
Diffstat (limited to 'sys/netinet6')
-rw-r--r--sys/netinet6/nd6.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/netinet6/nd6.c b/sys/netinet6/nd6.c
index 2c4cc53..4265b31 100644
--- a/sys/netinet6/nd6.c
+++ b/sys/netinet6/nd6.c
@@ -2065,6 +2065,12 @@ nd6_storelladdr(ifp, rt0, m, dst, desten)
}
}
+ if (rt0 == NULL) {
+ /* this could happen, if we could not allocate memory */
+ m_freem(m);
+ return (ENOMEM);
+ }
+
error = rt_check(&rt, &rt0, dst);
if (error) {
m_freem(m);
OpenPOWER on IntegriCloud