summaryrefslogtreecommitdiffstats
path: root/net/ipv4/tcp_metrics.c
diff options
context:
space:
mode:
authorJulian Anastasov <ja@ssi.bg>2012-10-30 13:03:09 +0100
committerDavid S. Miller <davem@davemloft.net>2012-11-01 16:59:08 +0100
commit2c42a3fb30845867bfcaf0747ff50c1375884ff2 (patch)
treeca6a06d35c17bf3561fd9e0faef41f5e5cd54c6c /net/ipv4/tcp_metrics.c
parentnet: fix divide by zero in tcp algorithm illinois (diff)
downloadlinux-2c42a3fb30845867bfcaf0747ff50c1375884ff2.tar.xz
linux-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/ipv4/tcp_metrics.c')
-rw-r--r--net/ipv4/tcp_metrics.c2
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));