diff --git a/sys/netinet/libalias/alias.c b/sys/netinet/libalias/alias.c --- a/sys/netinet/libalias/alias.c +++ b/sys/netinet/libalias/alias.c @@ -912,6 +912,9 @@ /* Walk out chain. */ error = find_handler(OUT, UDP, la, pip, &ad); + if (error < 0) + return (PKT_ALIAS_IGNORED); + /* If UDP checksum is not zero, adjust since source port is */ /* being aliased and source address is being altered */ if (ud->uh_sum != 0) { @@ -981,6 +984,9 @@ /* Walk out chain. */ error = find_handler(IN, TCP, la, pip, &ad); + if (error < 0) + return (PKT_ALIAS_IGNORED); + alias_address = GetAliasAddress(lnk); original_address = GetOriginalAddress(lnk); proxy_address = GetProxyAddress(lnk); @@ -1150,6 +1156,9 @@ /* Walk out chain. */ error = find_handler(OUT, TCP, la, pip, &ad); + if (error < 0) + return (PKT_ALIAS_IGNORED); + /* Adjust TCP checksum since source port is being aliased * and source address is being altered */ accumulate = tc->th_sport;