summaryrefslogtreecommitdiff
path: root/passwd/apr_getpass.c
diff options
context:
space:
mode:
authorwrowe <wrowe@13f79535-47bb-0310-9956-ffa450edef68>2001-02-11 23:31:04 +0000
committerwrowe <wrowe@13f79535-47bb-0310-9956-ffa450edef68>2001-02-11 23:31:04 +0000
commit32a3b5dd8b7ac9fee6c3e3fad5e26666a359e4a8 (patch)
tree8eb5fc6f6c2cc2b1f415639492d4ec3119cd35c6 /passwd/apr_getpass.c
parent56cfd746a84f09431c813fcc75d8b9f1a8ac1f52 (diff)
downloadlibapr-32a3b5dd8b7ac9fee6c3e3fad5e26666a359e4a8.tar.gz
result(?) What result? Stop mauling the size_t arg and overwrite the
system buffer before returning from apr_password_get, and clean up doc. git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@61218 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'passwd/apr_getpass.c')
-rw-r--r--passwd/apr_getpass.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/passwd/apr_getpass.c b/passwd/apr_getpass.c
index 6a9be850f..9e1610811 100644
--- a/passwd/apr_getpass.c
+++ b/passwd/apr_getpass.c
@@ -220,9 +220,10 @@ APR_DECLARE(apr_status_t) apr_password_get(const char *prompt, char *pwbuf, size
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);
- *bufsiz = result;
+ memset(pw_got, 0, strlen(pw_got));
return APR_SUCCESS;
}