summaryrefslogtreecommitdiff
path: root/usr/src/cmd/ssh/libssh/common/ssh-gss.c
diff options
context:
space:
mode:
authorJan Pechanec <Jan.Pechanec@Sun.COM>2008-09-12 11:17:27 -0700
committerJan Pechanec <Jan.Pechanec@Sun.COM>2008-09-12 11:17:27 -0700
commitcd7d5faf5bbb52336a6f85578a90b31a648ac3fa (patch)
tree9ac1635ecfe13f31666944f18e771bc4e9e58373 /usr/src/cmd/ssh/libssh/common/ssh-gss.c
parente4da943dc881d5566125b30eda2d8e3dd79a8f59 (diff)
downloadillumos-joyent-cd7d5faf5bbb52336a6f85578a90b31a648ac3fa.tar.gz
PSARC/2008/520 SunSSH with the OpenSSL PKCS#11 engine support
6445288 ssh needs to be OpenSSL engine aware 6709963 SunSSH server leaks memory during initialization 6687401 ssh monitor shouldn't try to log remote IP when child closed the pipe 6696629 sshd should remove alarm signal handler after authentication 6674088 userland threshold for hw offloading makes it difficult for SSL and SSH protocols 6728450 6708125 prevents parent to use the Crypto Framework after the fork(2) 6742247 ssh debug output with PACKET_DEBUG code could be more readable
Diffstat (limited to 'usr/src/cmd/ssh/libssh/common/ssh-gss.c')
-rw-r--r--usr/src/cmd/ssh/libssh/common/ssh-gss.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/usr/src/cmd/ssh/libssh/common/ssh-gss.c b/usr/src/cmd/ssh/libssh/common/ssh-gss.c
index c784426e90..4de5abb1da 100644
--- a/usr/src/cmd/ssh/libssh/common/ssh-gss.c
+++ b/usr/src/cmd/ssh/libssh/common/ssh-gss.c
@@ -29,8 +29,6 @@
#ifdef GSSAPI
-#pragma ident "%Z%%M% %I% %E% SMI"
-
#include "ssh.h"
#include "ssh2.h"
#include "xmalloc.h"
@@ -246,6 +244,7 @@ ssh_gssapi_encode_oid_for_kex(const gss_OID oid, char **enc_name)
buffer_put_char(&buf, '\0');
debug2("GSS-API Mechanism encoded as %s", encoded);
+ xfree(encoded);
*enc_name = xstrdup(buffer_ptr(&buf));
buffer_free(&buf);
@@ -271,6 +270,7 @@ ssh_gssapi_make_kexalgs_list(gss_OID_set mechs, const char *old_kexalgs)
len = strlen(old_kexalgs) + strlen(gss_kexalgs) + 2;
new_kexalgs = xmalloc(len);
(void) snprintf(new_kexalgs, len, "%s,%s", gss_kexalgs, old_kexalgs);
+ xfree(gss_kexalgs);
return (new_kexalgs);
}
@@ -286,7 +286,7 @@ ssh_gssapi_modify_kex(Kex *kex, gss_OID_set mechs, char **proposal)
int i;
if (kex == NULL || proposal == NULL ||
- (orig_kexalgs = proposal[PROPOSAL_KEX_ALGS]) == NULL) {
+ proposal[PROPOSAL_KEX_ALGS] == NULL) {
fatal("INTERNAL ERROR (%s)", __func__);
}
@@ -340,7 +340,7 @@ mod_offer:
(void) gss_release_oid_set(&min, &kex->mechs); /* ok if !kex->mechs */
- /* Not offering GSS kexalgs now -> all done */
+ /* Not offering GSS kex algorithms now -> all done */
if (mechs == GSS_C_NULL_OID_SET)
return;
@@ -358,9 +358,10 @@ mod_offer:
}
}
- /* Add mechs to kexalgs ... */
+ /* Add mechs to kex algorithms ... */
proposal[PROPOSAL_KEX_ALGS] = ssh_gssapi_make_kexalgs_list(mechs,
kexalgs);
+ xfree(kexalgs);
kex->mechs = dup_mechs; /* remember what we offer now */
/*