diff --git a/core/net/uip6.c b/core/net/uip6.c index 027532c61..942e0dfae 100644 --- a/core/net/uip6.c +++ b/core/net/uip6.c @@ -1048,7 +1048,7 @@ uip_process(uint8_t flag) if(flag == UIP_UDP_TIMER) { if(uip_udp_conn->lport != 0) { uip_conn = NULL; - uip_sappdata = uip_appdata = &uip_buf[UIP_IPUDPH_LEN]; + uip_sappdata = uip_appdata = &uip_buf[UIP_IPUDPH_LEN + UIP_LLH_LEN]; uip_len = uip_slen = 0; uip_flags = UIP_POLL; UIP_UDP_APPCALL(); @@ -1447,7 +1447,7 @@ uip_process(uint8_t flag) send. */ #if UIP_UDP_CHECKSUMS uip_len = uip_len - UIP_IPUDPH_LEN; - uip_appdata = &uip_buf[UIP_IPUDPH_LEN]; + uip_appdata = &uip_buf[UIP_IPUDPH_LEN + UIP_LLH_LEN]; if(UIP_UDP_BUF->udpchksum != 0 && uip_udpchksum() != 0xffff) { UIP_STAT(++uip_stat.udp.drop); UIP_STAT(++uip_stat.udp.chkerr); @@ -1500,7 +1500,7 @@ uip_process(uint8_t flag) uip_conn = NULL; uip_flags = UIP_NEWDATA; - uip_sappdata = uip_appdata = &uip_buf[UIP_IPUDPH_LEN]; + uip_sappdata = uip_appdata = &uip_buf[UIP_IPUDPH_LEN + UIP_LLH_LEN]; uip_slen = 0; UIP_UDP_APPCALL();