From 2183f1732174b17cc3ac80af51756f37e634f81d Mon Sep 17 00:00:00 2001 From: tedu <> Date: Tue, 24 Feb 2015 19:19:32 +0000 Subject: 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 --- src/lib/libc/crypt/cryptutil.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/lib') diff --git a/src/lib/libc/crypt/cryptutil.c b/src/lib/libc/crypt/cryptutil.c index c3ba08f996..75c48c52f7 100644 --- a/src/lib/libc/crypt/cryptutil.c +++ b/src/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 * @@ -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); -- cgit v1.2.3-55-g6feb