summaryrefslogtreecommitdiffstats
path: root/usr.bin/ssh/ssh.c
diff options
context:
space:
mode:
authormarkus <markus@openbsd.org>2001-04-11 10:59:01 +0000
committermarkus <markus@openbsd.org>2001-04-11 10:59:01 +0000
commite47976123af50821e71b6008918947bc47efabfd (patch)
tree1764dd70aeb3cc4e99966dda758939a6a204893c /usr.bin/ssh/ssh.c
parent"Amonst" -> "Amongst" (diff)
downloadwireguard-openbsd-e47976123af50821e71b6008918947bc47efabfd.tar.xz
wireguard-openbsd-e47976123af50821e71b6008918947bc47efabfd.zip
use strtol() for ports, thanks jakob@
Diffstat (limited to 'usr.bin/ssh/ssh.c')
-rw-r--r--usr.bin/ssh/ssh.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/usr.bin/ssh/ssh.c b/usr.bin/ssh/ssh.c
index c6a38003772..68658acaf98 100644
--- a/usr.bin/ssh/ssh.c
+++ b/usr.bin/ssh/ssh.c
@@ -39,7 +39,7 @@
*/
#include "includes.h"
-RCSID("$OpenBSD: ssh.c,v 1.108 2001/04/07 08:55:18 markus Exp $");
+RCSID("$OpenBSD: ssh.c,v 1.109 2001/04/11 10:59:01 markus Exp $");
#include <openssl/evp.h>
#include <openssl/err.h>
@@ -235,7 +235,7 @@ main(int ac, char **av)
{
int i, opt, optind, exit_status, ok;
u_short fwd_port, fwd_host_port;
- char *optarg, *cp, buf[256];
+ char *optarg, *cp, *endofnumber, buf[256];
struct stat st;
struct passwd *pw;
int dummy;
@@ -443,7 +443,11 @@ main(int ac, char **av)
}
break;
case 'p':
- options.port = atoi(optarg);
+ options.port = strtol(optarg, &endofnumber, 0);
+ if (optarg == endofnumber) {
+ fprintf(stderr, "Bad port '%s'\n", optarg);
+ exit(1);
+ }
break;
case 'l':
options.user = optarg;
@@ -472,7 +476,11 @@ main(int ac, char **av)
break;
case 'D':
- fwd_port = atoi(optarg);
+ fwd_port = strtol(optarg, &endofnumber, 0);
+ if (optarg == endofnumber) {
+ fprintf(stderr, "Bad port '%s'\n", optarg);
+ exit(1);
+ }
add_local_forward(&options, fwd_port, "socks4", 0);
break;