gsasl-commit
[Top][All Lists]
Advanced

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

CVS gsasl/tests


From: gsasl-commit
Subject: CVS gsasl/tests
Date: Thu, 23 Sep 2004 01:49:44 +0200

Update of /home/cvs/gsasl/tests
In directory dopio:/tmp/cvs-serv16485

Modified Files:
        cram-md5.c 
Log Message:
Fix buggy callbacks.


--- /home/cvs/gsasl/tests/cram-md5.c    2004/09/18 17:37:14     1.11
+++ /home/cvs/gsasl/tests/cram-md5.c    2004/09/22 23:49:44     1.12
@@ -41,12 +41,12 @@
                    const char *authorization_id,
                    const char *realm, char *key, size_t * keylen)
 {
-  if (!key)
-    *keylen = strlen (PASSWORD);
+  size_t needlen = strlen (PASSWORD);
 
-  if (*keylen < strlen (PASSWORD))
+  if (key && *keylen < needlen)
     return GSASL_TOO_SMALL_BUFFER;
 
+  *keylen = needlen;
   if (key)
     memcpy (key, PASSWORD, *keylen);
 
@@ -57,12 +57,12 @@
 client_cb_authentication_id (Gsasl_session_ctx * xctx,
                             char *out, size_t * outlen)
 {
-  if (!out)
-    *outlen = strlen (USERNAME);
+  size_t needlen = strlen (USERNAME);
 
-  if (*outlen < strlen (USERNAME))
+  if (out && *outlen < needlen)
     return GSASL_TOO_SMALL_BUFFER;
 
+  *outlen = needlen;
   if (out)
     memcpy (out, USERNAME, *outlen);
 
@@ -72,12 +72,12 @@
 static int
 client_cb_password (Gsasl_session_ctx * xctx, char *out, size_t * outlen)
 {
-  if (!out)
-    *outlen = strlen (PASSWORD);
+  size_t needlen = strlen (PASSWORD);
 
-  if (*outlen < strlen (PASSWORD))
+  if (out && *outlen < needlen)
     return GSASL_TOO_SMALL_BUFFER;
 
+  *outlen = needlen;
   if (out)
     memcpy (out, PASSWORD, *outlen);
 





reply via email to

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