From 112c7b2f22fa2a255a98d77d10f7ae1af1db802a Mon Sep 17 00:00:00 2001 From: TuxCrafting Date: Wed, 18 Apr 2018 21:44:41 +0300 Subject: [PATCH] return IPV4_EADDR_INVALID if accessing outside of subnet without a gateway --- SnailNet/IPv4.HC | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/SnailNet/IPv4.HC b/SnailNet/IPv4.HC index e467a4e..a06e6ed 100644 --- a/SnailNet/IPv4.HC +++ b/SnailNet/IPv4.HC @@ -86,6 +86,11 @@ static I64 GetEthernetAddressForIP(U32 ip, U8** mac_out) { } // outside this subnet; needs routing else if ((ip & ipv4_subnet_mask) != (my_ip & ipv4_subnet_mask)) { + // no gateway + if (ipv4_router_addr == 0) { + return IPV4_EADDR_INVALID; + } + // FIXME: infinite loop if mis-configured return GetEthernetAddressForIP(ipv4_router_addr, mac_out);