Blame SOURCES/tracepath-fix-copying-input-ipv6-address.patch

6cece9
From e0baf20067a75f093d690bd51a6db3f5afabca77 Mon Sep 17 00:00:00 2001
6cece9
From: Petr Vorel <pvorel@suse.cz>
6cece9
Date: Tue, 17 Jul 2018 17:56:10 +0200
6cece9
Subject: [PATCH] tracepath: Fix copying input IPv6 address
6cece9
6cece9
Commit e669c86 broke copying input IPv6 address.
6cece9
tracepath recover from it, but it's slower.
6cece9
6cece9
Previously was address too short:
6cece9
6cece9
    strace ./tracepath -6 fe80::8895:e2af:e96e:fd8f
6cece9
    sendto(3, "\1\0\0\0\0\0\0\0\307\36N[\0\0\0\0w_\f\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 127952, 0, {sa_family=AF_INET6, sin6_port=htons(44444), inet_pton(AF_INET6, "fe80::", &sin6_addr), sin6_flowinfo=htonl(0), sin6_scope_id=0}, 28) = -1 EMSGSIZE (Message too long)
6cece9
6cece9
After fix is correct:
6cece9
6cece9
    sendto(3, "\1\0\0\0\0\0\0\0\300\36N[\0\0\0\0'B\3\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 127952, 0, {sa_family=AF_INET6, sin6_port=htons(44444), inet_pton(AF_INET6, "fe80::8895:e2af:e96e:fd8f", &sin6_addr), sin6_flowinfo=htonl(0), sin6_scope_id=0}, 28) = -1 EMSGSIZE (Message too long)
6cece9
6cece9
Bug found by LTP test.
6cece9
6cece9
Fixes: e669c86 tracepath: fix heap-buffer-overflow [asan]
6cece9
Fixes: #137
6cece9
---
6cece9
 tracepath.c | 2 +-
6cece9
 1 file changed, 1 insertion(+), 1 deletion(-)
6cece9
6cece9
diff --git a/tracepath.c b/tracepath.c
6cece9
index 53bda16f..539a7a11 100644
6cece9
--- a/tracepath.c
6cece9
+++ b/tracepath.c
6cece9
@@ -475,7 +475,7 @@ int main(int argc, char **argv)
6cece9
 		fd = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol);
6cece9
 		if (fd < 0)
6cece9
 			continue;
6cece9
-		memcpy(&target, ai->ai_addr, sizeof(*ai->ai_addr));
6cece9
+		memcpy(&target, ai->ai_addr, ai->ai_addrlen);
6cece9
 		targetlen = ai->ai_addrlen;
6cece9
 		break;
6cece9
 	}