[Top][All Lists]
[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;
}