Bug 1357 - IPv6 fragmentation fails due to checks about malformed extensions
authorTommaso Pecorella <tommaso.pecorella@unifi.it>
Sat Feb 04 13:54:15 2012 +0100 (3 months ago)
changeset 7701c96a01de2973
parent 7700 ab3920dbfbef
child 7702 2778027c929c
Bug 1357 - IPv6 fragmentation fails due to checks about malformed extensions
RELEASE_NOTES
src/internet/model/ipv6-l3-protocol.cc
     1.1 --- a/RELEASE_NOTES	Tue Jan 31 09:21:49 2012 -0800
     1.2 +++ b/RELEASE_NOTES	Sat Feb 04 13:54:15 2012 +0100
     1.3 @@ -26,6 +26,7 @@
     1.4  ----------
     1.5   - bug 1319 - Fix Ipv6RawSocketImpl Icmpv6 filter
     1.6   - bug 1318 - Asserts for IPv6 malformed packets
     1.7 + - bug 1357 - IPv6 fragmentation fails due to checks about malformed extensions
     1.8  
     1.9  Known issues
    1.10  ------------
     2.1 --- a/src/internet/model/ipv6-l3-protocol.cc	Tue Jan 31 09:21:49 2012 -0800
     2.2 +++ b/src/internet/model/ipv6-l3-protocol.cc	Sat Feb 04 13:54:15 2012 +0100
     2.3 @@ -969,15 +969,16 @@
     2.4        if (ipv6Extension)
     2.5          {
     2.6            uint8_t nextHeaderStep = 0;
     2.7 +          uint8_t curHeader = nextHeader;
     2.8            nextHeaderStep = ipv6Extension->Process (p, nextHeaderPosition, ip, dst, &nextHeader, isDropped);
     2.9            nextHeaderPosition += nextHeaderStep;
    2.10  
    2.11 -          NS_ASSERT_MSG (nextHeaderStep != 0, "Zero-size IPv6 Option Header, aborting");
    2.12 -
    2.13            if (isDropped)
    2.14              {
    2.15                return;
    2.16              }
    2.17 +          NS_ASSERT_MSG (nextHeaderStep != 0 || curHeader == Ipv6Header::IPV6_EXT_FRAGMENTATION,
    2.18 +                         "Zero-size IPv6 Option Header, aborting" << *packet );
    2.19          }
    2.20        else
    2.21          {