diff options
Diffstat (limited to 'src/init.c')
-rw-r--r-- | src/init.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/init.c b/src/init.c index e0dfe8086..b8ae80903 100644 --- a/src/init.c +++ b/src/init.c @@ -224,12 +224,14 @@ static int parse_options(int ac, char **av) s = av[i]; t = strchr(s, ':'); if (t) { + int portnum; *t++ = 0; - if (atoi(t) > 0) - RemotePort = atoi(t); + portnum = atoi(t); + if ((portnum > 0) && (portnum < 65535)) + RemotePort = portnum; else { fprintf(stderr, - "-remote: port number must be a positive integer. Using default."); + "-remote: Port numbers must be in the range 1..65535. Using default.\n"); return -1; } } @@ -243,12 +245,14 @@ static int parse_options(int ac, char **av) s = av[i]; t = strchr(s, ':'); if (t) { + int portnum; *t++ = 0; - if (atoi(t) >= 0) - LocalPort = atoi(t); + portnum = atoi(t); + if ((portnum >= 0) && (portnum < 65535)) + LocalPort = portnum; else { fprintf(stderr, - "-local: port number must be a positive integer or 0. Using default."); + "-local: Port numbers must be in the range 1..65535 or 0. Using default.\n"); return -1; } } |