]> andersk Git - openssh.git/blobdiff - ssh.c
- markus@cvs.openbsd.org 2001/04/11 10:59:01
[openssh.git] / ssh.c
diff --git a/ssh.c b/ssh.c
index 75094a106d7422fe457aec5bb004f7176188f33d..89ced97e28d85c00051a90f0544958e1f4d40af5 100644 (file)
--- a/ssh.c
+++ b/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>
@@ -243,7 +243,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;
@@ -456,7 +456,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;
@@ -485,7 +489,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;
 
This page took 0.315183 seconds and 4 git commands to generate.