gsasl-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

CVS gsasl/lib/gssapi


From: gsasl-commit
Subject: CVS gsasl/lib/gssapi
Date: Thu, 14 Oct 2004 22:42:24 +0200

Update of /home/cvs/gsasl/lib/gssapi
In directory dopio:/tmp/cvs-serv3819

Modified Files:
        server.c 
Log Message:
Fix memory leak.


--- /home/cvs/gsasl/lib/gssapi/server.c 2004/10/13 16:23:30     1.5
+++ /home/cvs/gsasl/lib/gssapi/server.c 2004/10/14 20:42:24     1.6
@@ -149,7 +149,7 @@
   OM_uint32 maj_stat, min_stat;
   gss_buffer_desc client_name;
   gss_OID mech_type;
-  Gsasl_ctx *ctx;
+  Gsasl *ctx;
   char *username;
   int res;
   /* FIXME: Remove fixed size buffer. */
@@ -182,6 +182,12 @@
     case 1:
       bufdesc1.value = /*XXX*/ (char *) input;
       bufdesc1.length = input_len;
+      if (state->client)
+       {
+         gss_release_name (&min_stat, &state->client);
+         state->client = GSS_C_NO_NAME;
+       }
+
       maj_stat = gss_accept_sec_context (&min_stat,
                                         &state->context,
                                         state->cred,
@@ -295,6 +301,7 @@
        }
 
       res = cb_gssapi (sctx, client_name.value, username);
+
       free (username);
 
       *output_len = 0;
@@ -330,5 +337,8 @@
   if (state->cred != GSS_C_NO_CREDENTIAL)
     gss_release_cred (&min_stat, &state->cred);
 
+  if (state->client != GSS_C_NO_NAME)
+    gss_release_name (&min_stat, &state->client);
+
   free (state);
 }





reply via email to

[Prev in Thread] Current Thread [Next in Thread]