| From: Dmitry Safonov <dima@arista.com> |
| Date: Fri, 27 Jul 2018 16:54:44 +0100 |
| Subject: netlink: Do not subscribe to non-existent groups |
| |
| commit 7acf9d4237c46894e0fa0492dd96314a41742e84 upstream. |
| |
| Make ABI more strict about subscribing to group > ngroups. |
| Code doesn't check for that and it looks bogus. |
| (one can subscribe to non-existing group) |
| Still, it's possible to bind() to all possible groups with (-1) |
| |
| Cc: "David S. Miller" <davem@davemloft.net> |
| Cc: Herbert Xu <herbert@gondor.apana.org.au> |
| Cc: Steffen Klassert <steffen.klassert@secunet.com> |
| Cc: netdev@vger.kernel.org |
| Signed-off-by: Dmitry Safonov <dima@arista.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Ben Hutchings <ben@decadent.org.uk> |
| --- |
| net/netlink/af_netlink.c | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| --- a/net/netlink/af_netlink.c |
| +++ b/net/netlink/af_netlink.c |
| @@ -927,6 +927,7 @@ static int netlink_bind(struct socket *s |
| if (err) |
| return err; |
| } |
| + groups &= (1UL << nlk->ngroups) - 1; |
| |
| if (nlk->portid) |
| if (nladdr->nl_pid != nlk->portid) |