From d8803eecc67e6eba03f6f0e4f15c523b06f67731 Mon Sep 17 00:00:00 2001 From: Daniil Baturin Date: Sun, 2 Jun 2013 09:08:12 -0700 Subject: Do not proceed with further validation if address string is not well formed. --- src/ipaddrcheck.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/ipaddrcheck.c b/src/ipaddrcheck.c index cc0a26b..26d0dcc 100644 --- a/src/ipaddrcheck.c +++ b/src/ipaddrcheck.c @@ -209,12 +209,16 @@ int main(int argc, char* argv[]) address = cidr_from_str(address_str); int result = RESULT_SUCCESS; - /* Check if the address is valid at all, + /* Check if the address is valid and well-formatted at all, if not there is no point in going further */ - if( is_valid_address(address) != RESULT_SUCCESS ) + if( !( (is_valid_address(address) == RESULT_SUCCESS) && + ((is_any_cidr(address_str) == RESULT_SUCCESS) || (is_any_single(address_str) == RESULT_SUCCESS)) ) ) { + printf("cond: %d\n", (is_any_cidr(address_str) != RESULT_SUCCESS) || (is_any_single(address_str) != RESULT_SUCCESS)); + printf("valid: %d\n", (is_valid_address(address) != RESULT_SUCCESS)); return(EXIT_FAILURE); } + /* no else needed, the rest is one big else */ printf("action_count: %d\n", action_count); while( (action_count >= 0) && (result == RESULT_SUCCESS) ) -- cgit v1.2.3