This repository has been archived on 2024-05-11. You can view files and clone it, but cannot push or open issues or pull requests.
gluon-firmware/patches/openwrt/0006-Fix-ping6-sender-addre...

40 lines
1.4 KiB
Diff

From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Sat, 11 Jan 2014 17:08:59 +0100
Subject: Fix ping6 sender address
diff --git a/package/busybox/patches/960-ping6_sender_address.patch b/package/busybox/patches/960-ping6_sender_address.patch
new file mode 100644
index 0000000..7c56a6d
--- /dev/null
+++ b/package/busybox/patches/960-ping6_sender_address.patch
@@ -0,0 +1,29 @@
+--- a/networking/ping.c
++++ b/networking/ping.c
+@@ -638,7 +638,7 @@ static void unpack4(char *buf, int sz, s
+ }
+ }
+ #if ENABLE_PING6
+-static void unpack6(char *packet, int sz, /*struct sockaddr_in6 *from,*/ int hoplimit)
++static void unpack6(char *packet, int sz, struct sockaddr_in6 *from, int hoplimit)
+ {
+ struct icmp6_hdr *icmppkt;
+ char buf[INET6_ADDRSTRLEN];
+@@ -658,7 +658,7 @@ static void unpack6(char *packet, int sz
+ if (sz >= sizeof(struct icmp6_hdr) + sizeof(uint32_t))
+ tp = (uint32_t *) &icmppkt->icmp6_data8[4];
+ unpack_tail(sz, tp,
+- inet_ntop(AF_INET6, &pingaddr.sin6.sin6_addr,
++ inet_ntop(AF_INET6, &from->sin6_addr,
+ buf, sizeof(buf)),
+ recv_seq, hoplimit);
+ } else if (icmppkt->icmp6_type != ICMP6_ECHO_REQUEST) {
+@@ -808,7 +808,7 @@ static void ping6(len_and_sockaddr *lsa)
+ move_from_unaligned_int(hoplimit, CMSG_DATA(mp));
+ }
+ }
+- unpack6(G.rcv_packet, c, /*&from,*/ hoplimit);
++ unpack6(G.rcv_packet, c, &from, hoplimit);
+ if (pingcount && nreceived >= pingcount)
+ break;
+ }