[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lwip-commits] [SCM] lwIP - A Lightweight TCPIP stack branch, master, up
From: |
Dirk Ziegelmeier |
Subject: |
[lwip-commits] [SCM] lwIP - A Lightweight TCPIP stack branch, master, updated. master_at_STABLE-2_0_0-213-g9713bae |
Date: |
Wed, 11 Jan 2017 13:06:44 +0000 (UTC) |
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "lwIP - A Lightweight TCPIP stack".
The branch, master has been updated
via 9713baea5563d0c80383ebcc3a715b1dc2634314 (commit)
via 7cedf7ae71330a6a9f89f0c6a56134806ec4921f (commit)
from b17c050861899c9498707020f0ef727f2577faea (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 9713baea5563d0c80383ebcc3a715b1dc2634314
Author: David van Moolenbroek <address@hidden>
Date: Mon Jan 9 20:30:24 2017 +0000
ip6: improve length checks for extension headers
Malformed packets could cause the extension header iteration code to
read from up to two bytes beyond the end of the packet's first pbuf.
commit 7cedf7ae71330a6a9f89f0c6a56134806ec4921f
Author: David van Moolenbroek <address@hidden>
Date: Mon Jan 9 18:28:06 2017 +0000
IPv6: fragment reassembly fixes
This patch aims to fix three closely related issues.
o The implementation of IPV6_FRAG_COPYHEADER was fundamentally
incompatible with the presence of extension headers between the
IPv6 header and the Fragment Header. This patch changes the
implementation to support such extension headers as well, with
pretty much the same memory requirements. As a result, we can
remove the check that prevented such packets from being reassembled
in all cases, even with IPV6_FRAG_COPYHEADER off.
o Given that temporary data is stored in the Fragment Header of
packets saved for the purpose of reassembly, but ICMPv6 "Fragment
Reassembly Time Exceeded" packets contain part of the original
packet, such ICMPv6 packets could actually end up containing part
of the temporary data, which may even include a pointer value. The
ICMPv6 packet should contain the original, unchanged packet, so
save the original header data before overwriting it even if
IPV6_FRAG_COPYHEADER is disabled. This does add some extra memory
consumption.
o Previously, the reassembly would leave the fragment header in the
reassembled packet, which is not permitted by RFC 2460 and prevents
reassembly of particularly large packets (close to 65535 bytes
after reassembly). This patch gets rid of the fragment header. It
does require an implementation of memmove() for that purpose.
Note that this patch aims to improve correctness. Future changes
might restore some of the previous functionality in order to regain
optimal performance for certain cases (at the cost of more code).
-----------------------------------------------------------------------
Summary of changes:
src/core/ipv6/ip6.c | 68 +++++++++++-----------
src/core/ipv6/ip6_frag.c | 134 ++++++++++++++++++++++++++-----------------
src/include/lwip/ip6_frag.h | 46 ++++++++++-----
src/include/lwip/opt.h | 9 +++
4 files changed, 159 insertions(+), 98 deletions(-)
hooks/post-receive
--
lwIP - A Lightweight TCPIP stack
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [lwip-commits] [SCM] lwIP - A Lightweight TCPIP stack branch, master, updated. master_at_STABLE-2_0_0-213-g9713bae,
Dirk Ziegelmeier <=