summaryrefslogtreecommitdiff
path: root/usr.bin
diff options
context:
space:
mode:
authorDarren Tucker <dtucker@cvs.openbsd.org>2019-08-08 08:02:58 +0000
committerDarren Tucker <dtucker@cvs.openbsd.org>2019-08-08 08:02:58 +0000
commit02ad6a4db870df7517726d6fa99957eb52f64a63 (patch)
tree51a208e33886a592816a75253109f6df44935b20 /usr.bin
parent6168b4abd60cbc84bc4a200b15f462be1f2ab2e5 (diff)
Allow the maximimum uint32 value for the argument passed to -b which
allows better error messages from later validation. bz#3050, ok djm@
Diffstat (limited to 'usr.bin')
-rw-r--r--usr.bin/ssh/ssh-keygen.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/usr.bin/ssh/ssh-keygen.c b/usr.bin/ssh/ssh-keygen.c
index 02551ea280e..4f3912fdac4 100644
--- a/usr.bin/ssh/ssh-keygen.c
+++ b/usr.bin/ssh/ssh-keygen.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssh-keygen.c,v 1.339 2019/08/05 21:45:27 naddy Exp $ */
+/* $OpenBSD: ssh-keygen.c,v 1.340 2019/08/08 08:02:57 dtucker Exp $ */
/*
* Author: Tatu Ylonen <ylo@cs.hut.fi>
* Copyright (c) 1994 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -966,7 +966,7 @@ do_gen_all_hostkeys(struct passwd *pw)
{ NULL, NULL, NULL }
};
- u_int bits = 0;
+ u_int32_t bits = 0;
int first = 0;
struct stat st;
struct sshkey *private, *public;
@@ -2431,7 +2431,7 @@ main(int argc, char **argv)
int print_public = 0, print_generic = 0, cert_serial_autoinc = 0;
unsigned long long cert_serial = 0;
char *identity_comment = NULL, *ca_key_path = NULL;
- u_int bits = 0;
+ u_int32_t bits = 0;
FILE *f;
const char *errstr;
int log_level = SYSLOG_LEVEL_INFO;
@@ -2471,7 +2471,8 @@ main(int argc, char **argv)
gen_all_hostkeys = 1;
break;
case 'b':
- bits = (u_int32_t)strtonum(optarg, 10, 32768, &errstr);
+ bits = (u_int32_t)strtonum(optarg, 1, UINT32_MAX,
+ &errstr);
if (errstr)
fatal("Bits has bad value %s (%s)",
optarg, errstr);