diff --git a/CHANGELOG b/CHANGELOG index e39e0bfa..ba8e8c97 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -202,6 +202,9 @@ HISTORY ++ Bugfixes: + 2015-02-22: patch by Jens Nielsen + * icmp.c: fixed bug #38803 (Source address in broadcast ping reply) + 2015-02-22: Simon Goldschmidt * udp.h, sockets.c: added proper accessor functions for pcb->multicast_ip (previously used by get/setsockopt only) diff --git a/src/core/ipv4/icmp.c b/src/core/ipv4/icmp.c index cb8aaf19..e60c45d7 100644 --- a/src/core/ipv4/icmp.c +++ b/src/core/ipv4/icmp.c @@ -185,7 +185,7 @@ icmp_input(struct pbuf *p, struct netif *inp) /* We generate an answer by switching the dest and src ip addresses, * setting the icmp type to ECHO_RESPONSE and updating the checksum. */ iecho = (struct icmp_echo_hdr *)p->payload; - ip_addr_copy(iphdr->src, *ip_current_dest_addr()); + ip_addr_copy(iphdr->src, inp->ip_addr); ip_addr_copy(iphdr->dest, *ip_current_src_addr()); ICMPH_TYPE_SET(iecho, ICMP_ER); #if CHECKSUM_GEN_ICMP