From 9fb86f6e4b9958c12c9af506d54dfb11b81ee2c0 Mon Sep 17 00:00:00 2001 From: goldsimon Date: Wed, 31 Jan 2018 21:55:23 +0100 Subject: [PATCH] tcp: add a define for maximum option bytes --- src/core/tcp_out.c | 2 +- src/include/lwip/prot/tcp.h | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/core/tcp_out.c b/src/core/tcp_out.c index f0116a52..f6c4cf4c 100644 --- a/src/core/tcp_out.c +++ b/src/core/tcp_out.c @@ -1137,7 +1137,7 @@ tcp_get_num_sacks(struct tcp_pcb *pcb, u8_t optlen) optlen += 12; /* Max options size = 40, number of SACK array entries = LWIP_TCP_MAX_SACK_NUM */ - for (i = 0; (i < LWIP_TCP_MAX_SACK_NUM) && (optlen <= 40) && LWIP_TCP_SACK_VALID(pcb, i); ++i) { + for (i = 0; (i < LWIP_TCP_MAX_SACK_NUM) && (optlen <= TCP_MAX_OPTION_BYTES) && LWIP_TCP_SACK_VALID(pcb, i); ++i) { ++num_sacks; optlen += 8; } diff --git a/src/include/lwip/prot/tcp.h b/src/include/lwip/prot/tcp.h index 6e70838d..c1d7de1f 100644 --- a/src/include/lwip/prot/tcp.h +++ b/src/include/lwip/prot/tcp.h @@ -80,6 +80,8 @@ PACK_STRUCT_END /* Valid TCP header flags */ #define TCP_FLAGS 0x3fU +#define TCP_MAX_OPTION_BYTES 40 + #define TCPH_HDRLEN(phdr) ((u16_t)(lwip_ntohs((phdr)->_hdrlen_rsvd_flags) >> 12)) #define TCPH_HDRLEN_BYTES(phdr) ((u8_t)(TCPH_HDRLEN(phdr) << 2)) #define TCPH_FLAGS(phdr) ((u8_t)((lwip_ntohs((phdr)->_hdrlen_rsvd_flags) & TCP_FLAGS)))