mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-02 15:18:19 +00:00
[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
1 changed files with 3 additions and 1 deletions
|
@ -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 a new issue