From f77e58146875619e8ad6863de0e284b04df94d2a Mon Sep 17 00:00:00 2001 From: Joel Cunningham Date: Mon, 13 Jul 2015 17:39:20 -0500 Subject: [PATCH] Fix netbuf_destport() when LWIP_CHECKSUM_ON_COPY is not enabled This commit fixes a bug in netbuf_destport() where LWIP_NETBUF_RECVINFO is enabled, but not LWIP_CHECKSUM_ON_COPY is enabled The flags field is only available when LWIP_CHECKSUM_ON_COPY is enabled. In this mode, the toport_chksum is dual functioning as storage for port and checksum --- src/include/lwip/netbuf.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/include/lwip/netbuf.h b/src/include/lwip/netbuf.h index 6b31d00e..969ed1b1 100644 --- a/src/include/lwip/netbuf.h +++ b/src/include/lwip/netbuf.h @@ -97,7 +97,11 @@ LWIP_NETCONN_SCOPE void netbuf_first (struct netbuf *buf); #if LWIP_NETBUF_RECVINFO #define netbuf_destaddr(buf) (&((buf)->toaddr)) #define netbuf_set_destaddr(buf, destaddr) ip_addr_set(&((buf)->toaddr), destaddr) +#if LWIP_CHECKSUM_ON_COPY #define netbuf_destport(buf) (((buf)->flags & NETBUF_FLAG_DESTADDR) ? (buf)->toport_chksum : 0) +#else +#define netbuf_destport(buf) ((buf)->toport_chksum) +#endif /* LWIP_CHECKSUM_ON_COPY */ #endif /* LWIP_NETBUF_RECVINFO */ #if LWIP_CHECKSUM_ON_COPY #define netbuf_set_chksum(buf, chksum) do { (buf)->flags = NETBUF_FLAG_CHKSUM; \