Plug netmask NULL check during route addition causing kernel panic.

This bug was introduced by the r359823.

Reported by:	hselasky
This commit is contained in:
Alexander V. Chernikov 2020-04-14 13:12:22 +00:00
parent 789e4d2f20
commit 6722086045
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=359917
2 changed files with 3 additions and 2 deletions

View File

@ -103,7 +103,8 @@ rib4_preadd(u_int fibnum, const struct sockaddr *addr, const struct sockaddr *ma
/* Ensure that default route nhop has special flag */
const struct sockaddr_in *mask4 = (const struct sockaddr_in *)mask;
if ((rt_flags & RTF_HOST) == 0 && mask4->sin_addr.s_addr == 0)
if ((rt_flags & RTF_HOST) == 0 && mask4 != NULL &&
mask4->sin_addr.s_addr == 0)
nh->nh_flags |= NHF_DEFAULT;
/* Set nhop type to basic per-AF nhop */

View File

@ -125,7 +125,7 @@ rib6_preadd(u_int fibnum, const struct sockaddr *addr, const struct sockaddr *ma
/* Ensure that default route nhop has special flag */
const struct sockaddr_in6 *mask6 = (const struct sockaddr_in6 *)mask;
if ((nhop_get_rtflags(nh) & RTF_HOST) == 0 &&
if ((nhop_get_rtflags(nh) & RTF_HOST) == 0 && mask6 != NULL &&
IN6_IS_ADDR_UNSPECIFIED(&mask6->sin6_addr))
nh->nh_flags |= NHF_DEFAULT;