* svc_auth_gssapi.c (_svcauth_gssapi): When looping over services,
authorEzra Peisach <epeisach@mit.edu>
Tue, 16 Dec 1997 16:23:38 +0000 (16:23 +0000)
committerEzra Peisach <epeisach@mit.edu>
Tue, 16 Dec 1997 16:23:38 +0000 (16:23 +0000)
free previous output_tokens.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@10339 dc483132-0cff-0310-8789-dd5450dbe970

src/lib/rpc/ChangeLog
src/lib/rpc/svc_auth_gssapi.c

index 43920b96c88e460330d42517b7bad48e4b34844d..7800ccb9d014603843695ada5bfe7b2a5ae22875 100644 (file)
@@ -1,3 +1,8 @@
+Tue Dec 16 11:22:13 1997  Ezra Peisach  <epeisach@mit.edu>
+
+       * svc_auth_gssapi.c (_svcauth_gssapi): When looping over services,
+               free previous output_tokens.
+
 Fri Nov 21 00:37:14 1997  Ezra Peisach  <epeisach@mit.edu>
 
        * Makefile.in (types.h): Add rules to generate file by running
index d69a43ecb46f6da84c267cabaac793bd9ca1886a..1f18c8ff2ac463b525dd3dc359a0e0cf0081966c 100644 (file)
@@ -5,6 +5,10 @@
  * $Source$
  * 
  * $Log$
+ * Revision 1.44  1997/12/16 16:23:38  epeisach
+ *     * svc_auth_gssapi.c (_svcauth_gssapi): When looping over services,
+ *             free previous output_tokens.
+ *
  * Revision 1.43  1997/10/21 18:33:55  epeisach
  * Fix to not lose entries in the chain linked client list.
  *
@@ -568,6 +572,9 @@ enum auth_stat _svcauth_gssapi(rqst, msg, no_dispatch)
                    server_creds = server_creds_list[i];
               }
               
+              /* Free previous output_token from loop */
+              if(i != 0) gss_release_buffer(&minor_stat, &output_token);
+
               call_res.gss_major =
                    gss_accept_sec_context(&call_res.gss_minor,
                                           &client_data->context,
@@ -627,6 +634,7 @@ enum auth_stat _svcauth_gssapi(rqst, msg, no_dispatch)
                                   &rqst->rq_xprt->xp_raddr,
                                   log_badauth_data);
               
+              gss_release_buffer(&minor_stat, &output_token);
               svc_sendreply(rqst->rq_xprt, xdr_authgssapi_init_res,
                             (caddr_t) &call_res);
               *no_dispatch = TRUE;
@@ -654,6 +662,7 @@ enum auth_stat _svcauth_gssapi(rqst, msg, no_dispatch)
                   FALSE) {
                    ret = AUTH_FAILED;
                    LOG_MISCERR("internal error sealing sequence number");
+                   gss_release_buffer(&minor_stat, &output_token);
                    goto error;
               }
          }