forked from luck/tmp_suning_uos_patched
[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:
parent
de76e695a5
commit
c6817e4c32
@ -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) {
|
||||||
|
Loading…
Reference in New Issue
Block a user