[PATCH] userauth_gssapi_cleanup: supported mechs should be freed via gss_release_oid_set
    Markus Schmidt 
    markus at blueflash.cc
       
    Fri Mar 15 20:37:45 AEDT 2019
    
    
  
https://bugzilla.mindrot.org/show_bug.cgi?id=2982
Attached is a small patch that should be applied before the 8.0 release.
It fixes a problem with a recent patch (authored by me), where 
gssapi_cleanup was introduced and gssapi resources are freed.
It turns out that the supported_mechs should not be just freed but 
instead freed through gss_release_oid_set.
The error is probably irrelevant in the *ix/bsd environments, but turned 
out to be an error under Windows if a dynamic lib (gssapi.dll) from MIT 
Kerbereros is used.
Thanks
Markus Schmidt
-------------- next part --------------
diff --git a/sshconnect2.c b/sshconnect2.c
index dffee90..e4f345e 100644
--- a/sshconnect2.c
+++ b/sshconnect2.c
@@ -749,14 +749,15 @@ userauth_gssapi(struct ssh *ssh)
 static void
 userauth_gssapi_cleanup(struct ssh *ssh)
 {
+	OM_uint32 ms;
+
 	Authctxt *authctxt = (Authctxt *)ssh->authctxt;
 	Gssctxt *gssctxt = (Gssctxt *)authctxt->methoddata;
 
 	ssh_gssapi_delete_ctx(&gssctxt);
 	authctxt->methoddata = NULL;
 
-	free(authctxt->gss_supported_mechs);
-	authctxt->gss_supported_mechs = NULL;
+	gss_release_oid_set(&ms, &authctxt->gss_supported_mechs);
 }
 
 static OM_uint32
    
    
More information about the openssh-unix-dev
mailing list