summaryrefslogtreecommitdiff
path: root/passwd
diff options
context:
space:
mode:
authorWilliam A. Rowe Jr <wrowe@apache.org>2001-02-11 23:35:07 +0000
committerWilliam A. Rowe Jr <wrowe@apache.org>2001-02-11 23:35:07 +0000
commit4d36a9ca0fbe54c68ba1e7815d29a214f72c3df2 (patch)
tree200ffc8e501753caee8890bd82571f62a665ee73 /passwd
parente6bdfeaf7c3831a4177aaf7ff8b46167da59d102 (diff)
downloadapr-4d36a9ca0fbe54c68ba1e7815d29a214f72c3df2.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: https://svn.apache.org/repos/asf/apr/apr/trunk@61220 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'passwd')
-rw-r--r--passwd/apr_getpass.c8
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;
}