Ticket #4896: ipv4.diff

File ipv4.diff, 721 bytes (added by zooey, 12 years ago)

proposed patch that should fix the cause in the fragment reassembling code

  • src/add-ons/kernel/network/protocols/ipv4/ipv4.cpp

     
    338338        status_t status = gBufferModule->merge(buffer, next, true);
    339339        TRACE("    merge next: %s", strerror(status));
    340340        if (status != B_OK) {
    341             fFragments.Insert((net_buffer*)previous->link.next, next);
     341            fFragments.Insert(previous, next);
    342342            return status;
    343343        }
    344344
    345         fFragments.Insert((net_buffer*)previous->link.next, buffer);
     345        fFragments.Insert(previous, buffer);
    346346
    347347        // cut down existing hole
    348348        fBytesLeft -= end - start;