From 721a4859b32f690891b74e598fa826a3176710bf Mon Sep 17 00:00:00 2001 From: hidnplayr Date: Mon, 7 Jun 2010 16:10:07 +0000 Subject: [PATCH] net-branch: Fix crash in udp.inc when arp-entry is not found. Fixed bug in deleting of arp entry's git-svn-id: svn://kolibrios.org@1485 a494cfbc-eb01-0410-851d-a64ba20cac60 --- kernel/branches/net/network/ARP.inc | 5 ++--- kernel/branches/net/network/udp.inc | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/kernel/branches/net/network/ARP.inc b/kernel/branches/net/network/ARP.inc index 4e102df61..49bbd5799 100644 --- a/kernel/branches/net/network/ARP.inc +++ b/kernel/branches/net/network/ARP.inc @@ -436,20 +436,19 @@ ARP_del_entry: cmp esi, [NumARP] jge .error - DEBUGF 1,"deleting the entry..\n" - imul esi, ARP_ENTRY.size mov ecx, (ARP_TABLE_SIZE - 1) * ARP_ENTRY.size sub ecx, esi - lea edi, [ebx + esi] ;edi=ptr to entry that should be deleted + lea edi, [ARPTable + esi] ;edi=ptr to entry that should be deleted lea esi, [edi + ARP_ENTRY.size] ;esi=ptr to next entry shr ecx,1 ;ecx/2 => ARP_ENTRY_SIZE MUST BE EVEN NUMBER! rep movsw dec [NumARP] ;decrease arp-entries counter + DEBUGF 1,"ARP entry deleted\n" .error: ret diff --git a/kernel/branches/net/network/udp.inc b/kernel/branches/net/network/udp.inc index c4c7d9afe..a0af485e0 100644 --- a/kernel/branches/net/network/udp.inc +++ b/kernel/branches/net/network/udp.inc @@ -267,7 +267,7 @@ UDP_socket_send: .fail: ; todo: queue the packet - add esp, 8+12+8 + add esp, 8+8 ret