Since size of struct in_aliasreq has just been changed in r228571,

and thus ifconfig(8) needs recompile, it is a good chance to make
parameter checks on SIOCAIFADDR arguments more strict.
This commit is contained in:
Gleb Smirnoff 2011-12-16 13:30:17 +00:00
parent 9ee4b7eb64
commit 92ed4e1a24
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=228574
2 changed files with 1 additions and 6 deletions

View File

@ -126,6 +126,7 @@ in_getaddr(const char *s, int which)
*p = '/';
errx(1, "%s: bad value (width %s)", s, errstr);
}
min->sin_family = AF_INET;
min->sin_len = sizeof(*min);
min->sin_addr.s_addr = htonl(~((1LL << (32 - masklen)) - 1) &
0xffffffff);

View File

@ -253,16 +253,10 @@ in_control(struct socket *so, u_long cmd, caddr_t data, struct ifnet *ifp,
sizeof(struct sockaddr_in) ||
ifra->ifra_broadaddr.sin_family != AF_INET))
return (EINVAL);
#if 0
/*
* ifconfig(8) historically doesn't set af_family for mask
* for unknown reason.
*/
if (ifra->ifra_mask.sin_len != 0 &&
(ifra->ifra_mask.sin_len != sizeof(struct sockaddr_in) ||
ifra->ifra_mask.sin_family != AF_INET))
return (EINVAL);
#endif
break;
case SIOCSIFADDR:
case SIOCSIFBRDADDR: