diff options
author | David Ahern <dsahern@gmail.com> | 2018-12-19 16:54:38 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-12-19 17:30:47 -0800 |
commit | c0fde870d96e42bbdcc0d9af7ae5e190c767aab8 (patch) | |
tree | 68c71422634639bbe3a7a2f9f44dba1e694b90f1 /net/core/neighbour.c | |
parent | 1b451fb2051b464b9758c09a3492104403252e2b (diff) | |
download | linux-c0fde870d96e42bbdcc0d9af7ae5e190c767aab8.tar.bz2 |
neighbor: NTF_PROXY is a valid ndm_flag for a dump request
When dumping proxy entries the dump request has NTF_PROXY set in
ndm_flags. strict mode checking needs to be updated to allow this
flag.
Fixes: 51183d233b5a ("net/neighbor: Update neigh_dump_info for strict data checking")
Signed-off-by: David Ahern <dsahern@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core/neighbour.c')
-rw-r--r-- | net/core/neighbour.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/net/core/neighbour.c b/net/core/neighbour.c index 41954e42a2de..5fa32c064baf 100644 --- a/net/core/neighbour.c +++ b/net/core/neighbour.c @@ -2494,11 +2494,16 @@ static int neigh_valid_dump_req(const struct nlmsghdr *nlh, ndm = nlmsg_data(nlh); if (ndm->ndm_pad1 || ndm->ndm_pad2 || ndm->ndm_ifindex || - ndm->ndm_state || ndm->ndm_flags || ndm->ndm_type) { + ndm->ndm_state || ndm->ndm_type) { NL_SET_ERR_MSG(extack, "Invalid values in header for neighbor dump request"); return -EINVAL; } + if (ndm->ndm_flags & ~NTF_PROXY) { + NL_SET_ERR_MSG(extack, "Invalid flags in header for neighbor dump request"); + return -EINVAL; + } + err = nlmsg_parse_strict(nlh, sizeof(struct ndmsg), tb, NDA_MAX, NULL, extack); } else { |