From 57666a8ae009da9709f76b0118b79e05e01a9ee9 Mon Sep 17 00:00:00 2001 From: djm Date: Thu, 12 Oct 2023 02:15:53 +0000 Subject: [PATCH] release GSS OIDs only at end of authentication; bz2982, ok dtucker@ --- usr.bin/ssh/sshconnect2.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/usr.bin/ssh/sshconnect2.c b/usr.bin/ssh/sshconnect2.c index dbc338fb867..3bf4d6c1a27 100644 --- a/usr.bin/ssh/sshconnect2.c +++ b/usr.bin/ssh/sshconnect2.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshconnect2.c,v 1.367 2023/08/01 08:15:04 dtucker Exp $ */ +/* $OpenBSD: sshconnect2.c,v 1.368 2023/10/12 02:15:53 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * Copyright (c) 2008 Damien Miller. All rights reserved. @@ -469,6 +469,14 @@ ssh_userauth2(struct ssh *ssh, const char *local_user, ssh_dispatch_set(ssh, SSH2_MSG_SERVICE_ACCEPT, &input_userauth_service_accept); ssh_dispatch_run_fatal(ssh, DISPATCH_BLOCK, &authctxt.success); /* loop until success */ pubkey_cleanup(ssh); +#ifdef GSSAPI + if (authctxt.gss_supported_mechs != NULL) { + u_int ms; + + gss_release_oid_set(&ms, &authctxt.gss_supported_mechs); + authctxt.gss_supported_mechs = NULL; + } +#endif ssh->authctxt = NULL; ssh_dispatch_range(ssh, SSH2_MSG_USERAUTH_MIN, SSH2_MSG_USERAUTH_MAX, NULL); @@ -813,9 +821,6 @@ userauth_gssapi_cleanup(struct ssh *ssh) ssh_gssapi_delete_ctx(&gssctxt); authctxt->methoddata = NULL; - - free(authctxt->gss_supported_mechs); - authctxt->gss_supported_mechs = NULL; } static OM_uint32 -- 2.20.1