patch by Jens Nielsen: fixed bug #38803 (Source address in broadcast ping reply)

This commit is contained in:
sg 2015-02-22 22:02:17 +01:00
parent 03159254ce
commit c87efb77bc
2 changed files with 4 additions and 1 deletions

View File

@ -202,6 +202,9 @@ HISTORY
++ Bugfixes: ++ Bugfixes:
2015-02-22: patch by Jens Nielsen
* icmp.c: fixed bug #38803 (Source address in broadcast ping reply)
2015-02-22: Simon Goldschmidt 2015-02-22: Simon Goldschmidt
* udp.h, sockets.c: added proper accessor functions for pcb->multicast_ip * udp.h, sockets.c: added proper accessor functions for pcb->multicast_ip
(previously used by get/setsockopt only) (previously used by get/setsockopt only)

View File

@ -185,7 +185,7 @@ icmp_input(struct pbuf *p, struct netif *inp)
/* We generate an answer by switching the dest and src ip addresses, /* We generate an answer by switching the dest and src ip addresses,
* setting the icmp type to ECHO_RESPONSE and updating the checksum. */ * setting the icmp type to ECHO_RESPONSE and updating the checksum. */
iecho = (struct icmp_echo_hdr *)p->payload; 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()); ip_addr_copy(iphdr->dest, *ip_current_src_addr());
ICMPH_TYPE_SET(iecho, ICMP_ER); ICMPH_TYPE_SET(iecho, ICMP_ER);
#if CHECKSUM_GEN_ICMP #if CHECKSUM_GEN_ICMP