X-Git-Url: http://andersk.mit.edu/gitweb/openssh.git/blobdiff_plain/aff51935734441207923b8e59fbc3644fc4e7d2c..cd744742c3efb60d9791f485ce57956223e4aaa0:/sshconnect2.c diff --git a/sshconnect2.c b/sshconnect2.c index 76670e8a..3a218113 100644 --- a/sshconnect2.c +++ b/sshconnect2.c @@ -23,7 +23,7 @@ */ #include "includes.h" -RCSID("$OpenBSD: sshconnect2.c,v 1.133 2003/11/21 11:57:03 djm Exp $"); +RCSID("$OpenBSD: sshconnect2.c,v 1.134 2004/01/19 21:25:15 markus Exp $"); #include "openbsd-compat/sys-queue.h" @@ -546,7 +546,7 @@ process_gssapi_token(void *ctxt, gss_buffer_t recv_tok) gss_buffer_desc gssbuf, mic; OM_uint32 status, ms, flags; Buffer b; - + status = ssh_gssapi_init_ctx(gssctxt, options.gss_deleg_creds, recv_tok, &send_tok, &flags); @@ -555,12 +555,12 @@ process_gssapi_token(void *ctxt, gss_buffer_t recv_tok) packet_start(SSH2_MSG_USERAUTH_GSSAPI_ERRTOK); else packet_start(SSH2_MSG_USERAUTH_GSSAPI_TOKEN); - + packet_put_string(send_tok.value, send_tok.length); packet_send(); gss_release_buffer(&ms, &send_tok); } - + if (status == GSS_S_COMPLETE) { /* send either complete or MIC, depending on mechanism */ if (!(flags & GSS_C_INTEG_FLAG)) { @@ -572,21 +572,21 @@ process_gssapi_token(void *ctxt, gss_buffer_t recv_tok) gssbuf.value = buffer_ptr(&b); gssbuf.length = buffer_len(&b); - + status = ssh_gssapi_sign(gssctxt, &gssbuf, &mic); - + if (!GSS_ERROR(status)) { packet_start(SSH2_MSG_USERAUTH_GSSAPI_MIC); packet_put_string(mic.value, mic.length); - + packet_send(); } - + buffer_free(&b); gss_release_buffer(&ms, &mic); - } + } } - + return status; } @@ -1267,7 +1267,7 @@ ssh_keysign(Key *key, u_char **sigp, u_int *lenp, if (ssh_msg_recv(from[0], &b) < 0) { error("ssh_keysign: no reply"); - buffer_clear(&b); + buffer_free(&b); return -1; } close(from[0]); @@ -1279,11 +1279,11 @@ ssh_keysign(Key *key, u_char **sigp, u_int *lenp, if (buffer_get_char(&b) != version) { error("ssh_keysign: bad version"); - buffer_clear(&b); + buffer_free(&b); return -1; } *sigp = buffer_get_string(&b, lenp); - buffer_clear(&b); + buffer_free(&b); return 0; }