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:
parent
6a91cf5e43
commit
7c0fa838c1
@ -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 */
|
||||
|
@ -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;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user