diff options
author | Damien Miller <djm@mindrot.org> | 2006-03-26 14:19:21 +1100 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2006-03-26 14:19:21 +1100 |
commit | 07d86bec5eeaf19fe33dca99c8ebcbe9a77c3938 (patch) | |
tree | 098295eee2d7ec7b116b0db3ac4b580713dd5ab0 /auth-skey.c | |
parent | 7cd4579eb3c5afd22ae24436fd2611cd3aa0150a (diff) |
- djm@cvs.openbsd.org 2006/03/25 00:05:41
[auth-bsdauth.c auth-skey.c auth.c auth2-chall.c channels.c]
[clientloop.c deattack.c gss-genr.c kex.c key.c misc.c moduli.c]
[monitor.c monitor_wrap.c packet.c scard.c sftp-server.c ssh-agent.c]
[ssh-keyscan.c ssh.c sshconnect.c sshconnect2.c sshd.c uuencode.c]
[xmalloc.c xmalloc.h]
introduce xcalloc() and xasprintf() failure-checked allocations
functions and use them throughout openssh
xcalloc is particularly important because malloc(nmemb * size) is a
dangerous idiom (subject to integer overflow) and it is time for it
to die
feedback and ok deraadt@
Diffstat (limited to 'auth-skey.c')
-rw-r--r-- | auth-skey.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/auth-skey.c b/auth-skey.c index ce8c1a809..3e6a06db7 100644 --- a/auth-skey.c +++ b/auth-skey.c | |||
@@ -53,15 +53,10 @@ skey_query(void *ctx, char **name, char **infotxt, | |||
53 | *name = xstrdup(""); | 53 | *name = xstrdup(""); |
54 | *infotxt = xstrdup(""); | 54 | *infotxt = xstrdup(""); |
55 | *numprompts = 1; | 55 | *numprompts = 1; |
56 | *prompts = xmalloc(*numprompts * sizeof(char *)); | 56 | *prompts = xcalloc(*numprompts, sizeof(char *)); |
57 | *echo_on = xmalloc(*numprompts * sizeof(u_int)); | 57 | *echo_on = xcalloc(*numprompts, sizeof(u_int)); |
58 | (*echo_on)[0] = 0; | ||
59 | 58 | ||
60 | len = strlen(challenge) + strlen(SKEY_PROMPT) + 1; | 59 | xasprintf(*prompts, "%s%s", challenge, SKEY_PROMPT); |
61 | p = xmalloc(len); | ||
62 | strlcpy(p, challenge, len); | ||
63 | strlcat(p, SKEY_PROMPT, len); | ||
64 | (*prompts)[0] = p; | ||
65 | 60 | ||
66 | return 0; | 61 | return 0; |
67 | } | 62 | } |