summaryrefslogtreecommitdiff
path: root/nuttx/net/utils/net_chksum.c
diff options
context:
space:
mode:
authorGregory Nutt <gnutt@nuttx.org>2014-06-29 09:30:09 -0600
committerGregory Nutt <gnutt@nuttx.org>2014-06-29 09:30:09 -0600
commit1deaf2a9634576bf0e0f35a24911c3f22215fbd2 (patch)
treecfc63769fd41a0e4417e2a723d79e4ba8fb6f077 /nuttx/net/utils/net_chksum.c
parent02bad8e430f112e7f0bac29f52861c7048cb2bbe (diff)
downloadpx4-nuttx-1deaf2a9634576bf0e0f35a24911c3f22215fbd2.tar.gz
px4-nuttx-1deaf2a9634576bf0e0f35a24911c3f22215fbd2.tar.bz2
px4-nuttx-1deaf2a9634576bf0e0f35a24911c3f22215fbd2.zip
Fixes for networking and tiny webserver from Max
Diffstat (limited to 'nuttx/net/utils/net_chksum.c')
-rw-r--r--nuttx/net/utils/net_chksum.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/nuttx/net/utils/net_chksum.c b/nuttx/net/utils/net_chksum.c
index ff8438678..789646f50 100644
--- a/nuttx/net/utils/net_chksum.c
+++ b/nuttx/net/utils/net_chksum.c
@@ -126,6 +126,13 @@ static uint16_t upper_layer_chksum(FAR struct net_driver_s *dev, uint8_t proto)
upper_layer_len = (((uint16_t)(pbuf->len[0]) << 8) + pbuf->len[1]) - UIP_IPH_LEN;
#endif /* CONFIG_NET_IPv6 */
+ /* Verify some minimal assumptions */
+
+ if (upper_layer_len > CONFIG_NET_BUFSIZE)
+ {
+ return 0;
+ }
+
/* First sum pseudo-header. */
/* IP protocol and length fields. This addition cannot carry. */