The previous patchlet wasn't correct, please apply this one.
Sorry for the noise.
/holger
[NETLINK] Check for correct bind parameters
Before this change it was possible to pass less than sockaddr_nl
bytes, which might lead to arbitrary data being accessed in
netlink_bind().
Take two.
Signed-off-by: Holger Eitzenberger <[EMAIL PROTECTED]>
---
commit 3155c34167184c31afeac2a061c0e0b9cd401d56
tree b5efe4234a5835e823b6b024f8d96e56f4abfd18
parent f695baf2df9e0413d3521661070103711545207a
author Holger Eitzenberger <[EMAIL PROTECTED]> Tue, 18 Sep 2007 23:10:11 +0200
committer Holger Eitzenberger <[EMAIL PROTECTED](none)> Tue, 18 Sep 2007
23:10:11 +0200
net/netlink/af_netlink.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c
index 5681ce3..5aaa9a7 100644
--- a/net/netlink/af_netlink.c
+++ b/net/netlink/af_netlink.c
@@ -598,6 +598,9 @@ static int netlink_bind(struct socket *sock, struct
sockaddr *addr, int addr_len
struct sockaddr_nl *nladdr = (struct sockaddr_nl *)addr;
int err;
+ if (addr_len < sizeof(struct sockaddr_nl))
+ return -EINVAL;
+
if (nladdr->nl_family != AF_NETLINK)
return -EINVAL;