Fixed bug #17200, added check for broadcast destinations for PCBs bound to a unicast address.

This commit is contained in:
christiaans 2006-08-17 09:40:15 +00:00
parent d734cd986c
commit 7d16087789
2 changed files with 6 additions and 1 deletions

View File

@ -53,6 +53,10 @@ HISTORY
++ Bug fixes:
2006-08-17 Christiaan Simons
* udp.c: Fixed bug #17200, added check for broadcast
destinations for PCBs bound to a unicast address.
2006-08-07 Christiaan Simons
* api_msg.c: Flushing TCP output in do_close() (bug #15926).

View File

@ -145,7 +145,8 @@ udp_input(struct pbuf *p, struct netif *inp)
/* compare PCB local addr+port to UDP destination addr+port */
if ((pcb->local_port == dest) &&
(ip_addr_isany(&pcb->local_ip) ||
ip_addr_cmp(&(pcb->local_ip), &(iphdr->dest)))) {
ip_addr_cmp(&(pcb->local_ip), &(iphdr->dest)) ||
ip_addr_isbroadcast(&(iphdr->dest), inp))) {
local_match = 1;
if ((uncon_pcb == NULL) &&
((pcb->flags & UDP_FLAGS_CONNECTED) == 0)) {