diff options
author | Julian Anastasov <ja@ssi.bg> | 2012-10-30 12:03:09 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-11-01 11:59:08 -0400 |
commit | 2c42a3fb30845867bfcaf0747ff50c1375884ff2 (patch) | |
tree | ca6a06d35c17bf3561fd9e0faef41f5e5cd54c6c /net | |
parent | 8f363b77ee4fbf7c3bbcf5ec2c5ca482d396d664 (diff) | |
download | linux-stable-2c42a3fb30845867bfcaf0747ff50c1375884ff2.tar.gz linux-stable-2c42a3fb30845867bfcaf0747ff50c1375884ff2.tar.bz2 linux-stable-2c42a3fb30845867bfcaf0747ff50c1375884ff2.zip |
tcp: Fix double sizeof in new tcp_metrics code
Fix double sizeof when parsing IPv6 address from
user space because it breaks get/del by specific IPv6 address.
Problem noticed by David Binderman:
https://bugzilla.kernel.org/show_bug.cgi?id=49171
Signed-off-by: Julian Anastasov <ja@ssi.bg>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/ipv4/tcp_metrics.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ipv4/tcp_metrics.c b/net/ipv4/tcp_metrics.c index 4c752a6e0bcd..53bc5847bfa8 100644 --- a/net/ipv4/tcp_metrics.c +++ b/net/ipv4/tcp_metrics.c @@ -864,7 +864,7 @@ static int parse_nl_addr(struct genl_info *info, struct inetpeer_addr *addr, } a = info->attrs[TCP_METRICS_ATTR_ADDR_IPV6]; if (a) { - if (nla_len(a) != sizeof(sizeof(struct in6_addr))) + if (nla_len(a) != sizeof(struct in6_addr)) return -EINVAL; addr->family = AF_INET6; memcpy(addr->addr.a6, nla_data(a), sizeof(addr->addr.a6)); |