[IPV6]: return EINVAL for invalid address with flowlabel lease request

Currently, when an application requests a lease for a flowlabel via the 
IPV6_FLOWLABEL_MGR socket option, no error is returned if an invalid type 
of destination address is supplied as part of the request, leading to a 
silent failure.  This patch ensures that EINVAL is returned to the 
application in this case.

Signed-off-by: James Morris <jmorris@namei.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
James Morris 2006-10-30 18:56:06 -08:00 committed by David S. Miller
parent de76e695a5
commit c6817e4c32

View File

@ -330,8 +330,10 @@ fl_create(struct in6_flowlabel_req *freq, char __user *optval, int optlen, int *
fl->share = freq->flr_share; fl->share = freq->flr_share;
addr_type = ipv6_addr_type(&freq->flr_dst); addr_type = ipv6_addr_type(&freq->flr_dst);
if ((addr_type&IPV6_ADDR_MAPPED) if ((addr_type&IPV6_ADDR_MAPPED)
|| addr_type == IPV6_ADDR_ANY) || addr_type == IPV6_ADDR_ANY) {
err = -EINVAL;
goto done; goto done;
}
ipv6_addr_copy(&fl->dst, &freq->flr_dst); ipv6_addr_copy(&fl->dst, &freq->flr_dst);
atomic_set(&fl->users, 1); atomic_set(&fl->users, 1);
switch (fl->share) { switch (fl->share) {