diff --git a/tncattach.c b/tncattach.c index ab5772c..802ff74 100644 --- a/tncattach.c +++ b/tncattach.c @@ -504,6 +504,15 @@ static error_t parse_opt(int key, char *arg, struct argp_state *state) { long prefixLen_l = strtol(prefixPart_s, NULL, 10); // TODO: Add handling here for errors (using errno) + if(prefixLen_l == 0) { + printf("Prefix length '%s' is not numeric\n", prefixPart_s); + exit(EXIT_FAILURE); + } + else if(!(prefixLen_l >= 0 && prefixLen_l <= 128)) + { + printf("Prefix length '%s' is not within valid range of 0-128\n", prefixPart_s); + exit(EXIT_FAILURE); + } arguments->ipv6 = ipPart_s;