gsasl-commit
[Top][All Lists]
Advanced

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

CVS gsasl/lib/cram-md5


From: gsasl-commit
Subject: CVS gsasl/lib/cram-md5
Date: Wed, 15 Dec 2004 19:06:21 +0100

Update of /home/cvs/gsasl/lib/cram-md5
In directory dopio:/tmp/cvs-serv8020

Modified Files:
        client.c 
Log Message:
Reorder authid/password queries, tiny patch from Sergey Poznyakoff
<address@hidden>.


--- /home/cvs/gsasl/lib/cram-md5/client.c       2004/12/15 01:00:02     1.10
+++ /home/cvs/gsasl/lib/cram-md5/client.c       2004/12/15 18:06:20     1.11
@@ -46,6 +46,7 @@
   const char *p;
   size_t len;
   char *tmp;
+  char *authid;
   int rc;
 
   if (input_len == 0)
@@ -55,43 +56,49 @@
       return GSASL_NEEDS_MORE;
     }
 
-  p = gsasl_property_get (sctx, GSASL_PASSWORD);
+  p = gsasl_property_get (sctx, GSASL_AUTHID);
   if (!p)
-    return GSASL_NO_PASSWORD;
+    return GSASL_NO_AUTHID;
 
   /* XXX Use query strings here?  Specification is unclear. */
-  rc = gsasl_saslprep (p, GSASL_ALLOW_UNASSIGNED, &tmp, NULL);
+  rc = gsasl_saslprep (p, GSASL_ALLOW_UNASSIGNED, &authid, NULL);
   if (rc != GSASL_OK)
     return rc;
 
-  cram_md5_digest (input, input_len, tmp, strlen (tmp), response);
-
-  free (tmp);
-
-  p = gsasl_property_get (sctx, GSASL_AUTHID);
+  p = gsasl_property_get (sctx, GSASL_PASSWORD);
   if (!p)
-    return GSASL_NO_AUTHID;
+    {
+      free (authid);
+      return GSASL_NO_PASSWORD;
+    }
 
   /* XXX Use query strings here?  Specification is unclear. */
   rc = gsasl_saslprep (p, GSASL_ALLOW_UNASSIGNED, &tmp, NULL);
   if (rc != GSASL_OK)
-    return rc;
+    {
+      free (authid);
+      return rc;
+    }
 
-  len = strlen (tmp);
+  cram_md5_digest (input, input_len, tmp, strlen (tmp), response);
+
+  free (tmp);
+
+  len = strlen (authid);
 
   *output_len = len + strlen (" ") + CRAM_MD5_DIGEST_LEN;
   *output = malloc (*output_len);
   if (!*output)
     {
-      free (tmp);
+      free (authid);
       return GSASL_MALLOC_ERROR;
     }
 
-  memcpy (*output, tmp, len);
+  memcpy (*output, authid, len);
   (*output)[len++] = ' ';
   memcpy (*output + len, response, CRAM_MD5_DIGEST_LEN);
 
-  free (tmp);
+  free (authid);
 
   return GSASL_OK;
 }





reply via email to

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