From cc0aea13a0f19e1abfd3bdd7aa38c5ead6b5a692 Mon Sep 17 00:00:00 2001 From: Daniele Lacamera Date: Wed, 25 Mar 2026 19:13:53 +0100 Subject: [PATCH] Fix forward-interface short-circuit return F/1319 --- src/test/unit/unit_tests_tcp_ack.c | 8 ++++---- src/wolfip.c | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/test/unit/unit_tests_tcp_ack.c b/src/test/unit/unit_tests_tcp_ack.c index 7ceb2c2f..7d274625 100644 --- a/src/test/unit/unit_tests_tcp_ack.c +++ b/src/test/unit/unit_tests_tcp_ack.c @@ -4,6 +4,7 @@ START_TEST(test_dns_abort_query_null_noop) } END_TEST + START_TEST(test_tcp_input_ttl_zero_local_ack_still_processes) { struct wolfIP s; @@ -1148,7 +1149,7 @@ START_TEST(test_forward_interface_variants) ck_assert_int_eq((int)out_if, -1); s.if_count = 1; - ck_assert_uint_eq(wolfIP_forward_interface(&s, TEST_PRIMARY_IF, 0x0A000099U), 1U); + ck_assert_int_eq(wolfIP_forward_interface(&s, TEST_PRIMARY_IF, 0x0A000099U), -1); } END_TEST @@ -1183,11 +1184,11 @@ START_TEST(test_forward_interface_short_circuit_cases) { struct wolfIP s; - ck_assert_int_eq(wolfIP_forward_interface(NULL, 0, 0x0A000001U), 0); + ck_assert_int_eq(wolfIP_forward_interface(NULL, 0, 0x0A000001U), -1); wolfIP_init(&s); s.if_count = 1; - ck_assert_uint_eq(wolfIP_forward_interface(&s, 0, 0x0A000001U), 1U); + ck_assert_int_eq(wolfIP_forward_interface(&s, 0, 0x0A000001U), -1); } END_TEST @@ -4142,4 +4143,3 @@ START_TEST(test_tcp_ack_no_sack_three_dupacks_with_zero_rwnd_triggers_retransmit ck_assert_int_ne(desc->flags & PKT_FLAG_RETRANS, 0); } END_TEST - diff --git a/src/wolfip.c b/src/wolfip.c index e736f99b..3dfecfc8 100644 --- a/src/wolfip.c +++ b/src/wolfip.c @@ -1446,7 +1446,7 @@ static int wolfIP_forward_interface(struct wolfIP *s, unsigned int in_if, ip4 de { int i; if (!s || s->if_count < 2) - return s ? s->if_count : 0; + return -1; for (i = 0; i < (int)s->if_count; i++) { struct ipconf *conf = &s->ipconf[i]; if (i == (int)in_if)