diff options
author | Ted Unangst <tedu@cvs.openbsd.org> | 2015-02-24 19:19:33 +0000 |
---|---|---|
committer | Ted Unangst <tedu@cvs.openbsd.org> | 2015-02-24 19:19:33 +0000 |
commit | 83a61cb3fd9df618d9c6fab41eea171417d1432e (patch) | |
tree | f7dc48b7a48e954af4ec48ecff2940e24af6f5c1 /lib | |
parent | cb097bf15f8b0c2c20013cf7a4dd39fcf6c8df20 (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.c | 6 |
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); |