summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorTed Unangst <tedu@cvs.openbsd.org>2015-02-24 19:19:33 +0000
committerTed Unangst <tedu@cvs.openbsd.org>2015-02-24 19:19:33 +0000
commit83a61cb3fd9df618d9c6fab41eea171417d1432e (patch)
treef7dc48b7a48e954af4ec48ecff2940e24af6f5c1 /lib
parentcb097bf15f8b0c2c20013cf7a4dd39fcf6c8df20 (diff)
Set errno to EINVAL, instead of letting ERANGE escape out.
Printing strerror() in that case will say result too large, even if rounds is actually too small. invalid is less specific, but less incorrect. ok millert
Diffstat (limited to 'lib')
-rw-r--r--lib/libc/crypt/cryptutil.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/libc/crypt/cryptutil.c b/lib/libc/crypt/cryptutil.c
index c3ba08f9963..75c48c52f7e 100644
--- a/lib/libc/crypt/cryptutil.c
+++ b/lib/libc/crypt/cryptutil.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cryptutil.c,v 1.8 2015/01/15 17:32:43 chl Exp $ */
+/* $OpenBSD: cryptutil.c,v 1.9 2015/02/24 19:19:32 tedu Exp $ */
/*
* Copyright (c) 2014 Ted Unangst <tedu@openbsd.org>
*
@@ -69,8 +69,10 @@ crypt_newhash(const char *pass, const char *pref, char *hash, size_t hashlen)
rounds = bcrypt_autorounds();
} else {
rounds = strtonum(pref + 9, 4, 31, &errstr);
- if (errstr)
+ if (errstr) {
+ errno = EINVAL;
goto err;
+ }
}
rv = bcrypt_newhash(pass, rounds, hash, hashlen);