[Top][All Lists]

[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
    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(-)

lwIP - A Lightweight TCPIP stack

reply via email to

[Prev in Thread] Current Thread [Next in Thread]