diff options
author | wrowe <wrowe@13f79535-47bb-0310-9956-ffa450edef68> | 2001-02-11 23:35:07 +0000 |
---|---|---|
committer | wrowe <wrowe@13f79535-47bb-0310-9956-ffa450edef68> | 2001-02-11 23:35:07 +0000 |
commit | 6af76a0465247f1dcf72a67c2cf9a754c6b14a22 (patch) | |
tree | 200ffc8e501753caee8890bd82571f62a665ee73 /passwd | |
parent | 9893133215359553992428d94d700bee20663d7c (diff) | |
download | libapr-6af76a0465247f1dcf72a67c2cf9a754c6b14a22.tar.gz |
Still wasn't right. Always return the (partial/complete) password
string, and use the apr_status_t as the -one and only- indicatator of
success, partial success or failure.
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@61220 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'passwd')
-rw-r--r-- | passwd/apr_getpass.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/passwd/apr_getpass.c b/passwd/apr_getpass.c index a5cbdea43..1004575af 100644 --- a/passwd/apr_getpass.c +++ b/passwd/apr_getpass.c @@ -215,12 +215,10 @@ static char *getpass(const char *prompt) APR_DECLARE(apr_status_t) apr_password_get(const char *prompt, char *pwbuf, size_t *bufsiz) { char *pw_got = getpass(prompt); - if (strlen(pw_got) > (*bufsiz - 1)) { - *bufsiz = ERR_OVERFLOW; - memset(pw_got, 0, strlen(pw_got)); - return APR_ENAMETOOLONG; - } apr_cpystrn(pwbuf, pw_got, *bufsiz); memset(pw_got, 0, strlen(pw_got)); + if (strlen(pw_got) >= *bufsiz) { + return APR_ENAMETOOLONG; + } return APR_SUCCESS; } |