Reverted change for bug #27252 (Address pointer invalid after freeing pbuf in UDP receive callback) as it made more problems than before :-(

This commit is contained in:
goldsimon
2009-10-07 17:50:46 +00:00
parent ddc783bee7
commit 9e5cf1cf8e
3 changed files with 4 additions and 7 deletions

View File

@@ -281,10 +281,8 @@ udp_input(struct pbuf *p, struct netif *inp)
snmp_inc_udpindatagrams();
/* callback */
if (pcb->recv != NULL) {
/* copy the source address to make it independent of the pbuf */
struct ip_addr src_addr = iphdr->src;
/* now the recv function is responsible for freeing p */
pcb->recv(pcb->recv_arg, pcb, p, &src_addr, src);
pcb->recv(pcb->recv_arg, pcb, p, &iphdr->src, src);
} else {
/* no recv function registered? then we have to free the pbuf! */
pbuf_free(p);