diff --git a/src/add-ons/kernel/network/datalink_protocols/arp/arp.cpp b/src/add-ons/kernel/network/datalink_protocols/arp/arp.cpp index fac074f5be..fe58de1f39 100644 --- a/src/add-ons/kernel/network/datalink_protocols/arp/arp.cpp +++ b/src/add-ons/kernel/network/datalink_protocols/arp/arp.cpp @@ -885,14 +885,12 @@ arp_control(const char *subsystem, uint32 function, void *buffer, arp_entry *entry = NULL; uint32 i = 0; - while (iterator.HasNext() && i < control.cookie) { + for (uint32 i = 0; i <= control.cookie; i++) { + if (!iterator.HasNext()) + return B_ENTRY_NOT_FOUND; entry = iterator.Next(); - i++; } - if (entry == NULL) - return B_ENTRY_NOT_FOUND; - control.cookie++; control.address = entry->protocol_address; if (entry->hardware_address.sdl_alen == ETHER_ADDRESS_LENGTH) {