]> git.ipfire.org Git - thirdparty/krb5.git/commitdiff
Fix t_s4u2proxy_krb5 cleanup
authorGreg Hudson <ghudson@mit.edu>
Mon, 24 Sep 2012 20:57:24 +0000 (16:57 -0400)
committerGreg Hudson <ghudson@mit.edu>
Mon, 24 Sep 2012 20:57:24 +0000 (16:57 -0400)
Unlike most GSS test programs, t_s4u2proxy_krb5 uses a cleanup
handler, so we have to be careful to initialize everything we clean
up--particularly service2_name, which is initialized after a possible
goto.  Also, remember to release acceptor_name.

src/tests/gssapi/t_s4u2proxy_krb5.c

index 4de6ed1c6cf4839b640e7407d66c3c99fc17c260..6108715025a5607c7d4bea62676c8d9d9ec0269f 100644 (file)
@@ -58,7 +58,8 @@ main(int argc, char *argv[])
     gss_buffer_desc buf = GSS_C_EMPTY_BUFFER, token = GSS_C_EMPTY_BUFFER;
     gss_OID mech;
     gss_OID_set mechs;
-    gss_name_t acceptor_name, service1_name, service2_name, client_name;
+    gss_name_t acceptor_name = GSS_C_NO_NAME, client_name = GSS_C_NO_NAME;
+    gss_name_t service1_name = GSS_C_NO_NAME, service2_name = GSS_C_NO_NAME;
     gss_cred_id_t service1_cred = GSS_C_NO_CREDENTIAL;
     gss_cred_id_t deleg_cred = GSS_C_NO_CREDENTIAL;
     gss_ctx_id_t initiator_context = GSS_C_NO_CONTEXT;
@@ -168,6 +169,7 @@ main(int argc, char *argv[])
     (void)gss_release_buffer(&minor, &buf);
 
 cleanup:
+    (void)gss_release_name(&minor, &acceptor_name);
     (void)gss_release_name(&minor, &client_name);
     (void)gss_release_name(&minor, &service1_name);
     (void)gss_release_name(&minor, &service2_name);