summaryrefslogtreecommitdiff
path: root/passwd/apr_getpass.c
diff options
context:
space:
mode:
Diffstat (limited to 'passwd/apr_getpass.c')
-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;
}