forked from KolibriOS/kolibrios
Bugfix in IPv4_input (for fragmented IPv4 packets)
git-svn-id: svn://kolibrios.org@4259 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
f9853cf87d
commit
2465fafb4e
@ -484,8 +484,8 @@ IPv4_input: ; TODO: add IPv4
|
|||||||
rep movsb ;
|
rep movsb ;
|
||||||
|
|
||||||
push eax
|
push eax
|
||||||
push [edx + IPv4_FRAGMENT_entry.Owner] ; we need to remeber the owner, in case this is the last packet
|
push [edx + IPv4_FRAGMENT_entry.Owner] ; we need to remeber the owner, in case this is the last packet
|
||||||
push [edx + IPv4_FRAGMENT_entry.NextPtr] ; Set edx to the next pointer
|
push [edx + IPv4_FRAGMENT_entry.NextPtr] ; Set edx to the next pointer
|
||||||
push edx ; Push pointer to fragment onto stack
|
push edx ; Push pointer to fragment onto stack
|
||||||
DEBUGF DEBUG_NETWORK_VERBOSE, "IPv4_input: Next Fragment: 0x%x\n", edx
|
DEBUGF DEBUG_NETWORK_VERBOSE, "IPv4_input: Next Fragment: 0x%x\n", edx
|
||||||
call NET_packet_free ; free the previous fragment buffer (this uses the value from stack)
|
call NET_packet_free ; free the previous fragment buffer (this uses the value from stack)
|
||||||
@ -497,14 +497,10 @@ IPv4_input: ; TODO: add IPv4
|
|||||||
xchg cl, ch
|
xchg cl, ch
|
||||||
mov edx, eax
|
mov edx, eax
|
||||||
mov [edx + IPv4_header.TotalLength], cx
|
mov [edx + IPv4_header.TotalLength], cx
|
||||||
add esp, 8
|
add esp, 12
|
||||||
xchg cl, ch
|
xchg cl, ch
|
||||||
push ecx
|
push ecx edx ; size and pointer
|
||||||
|
jmp .handle_it ; edx = buf ptr, ecx = size, [esp] buf ptr, [esp+4], total size, ebx=device ptr
|
||||||
DEBUGF DEBUG_NETWORK_VERBOSE, "IPv4_input: Packet is now de-fragmented\n"
|
|
||||||
|
|
||||||
push eax
|
|
||||||
jmp .handle_it ; edx = buf ptr, ecx = size, [esp] buf ptr, [esp+4], total size, ebx=device ptr
|
|
||||||
|
|
||||||
.destroy_slot_pop:
|
.destroy_slot_pop:
|
||||||
add esp, 4
|
add esp, 4
|
||||||
|
Loading…
Reference in New Issue
Block a user