util_moonshot.c: Handle empty strings in trust anchor arguments.
authorSam Hartman <hartmans@debian.org>
Tue, 24 Jan 2012 17:38:03 +0000 (12:38 -0500)
committerSam Hartman <hartmans@debian.org>
Tue, 24 Jan 2012 17:38:03 +0000 (12:38 -0500)
mech_eap/util_moonshot.c

index cf64083..46282e8 100644 (file)
@@ -129,6 +129,15 @@ cleanup:
     return major;
 }
 
+static int stringEmpty(const char * s)
+{
+    if (s == NULL)
+      return 1;
+    if (strlen(s) > 0)
+       return 0;
+    return 1;
+}
+
 OM_uint32
 libMoonshotResolveInitiatorCred(OM_uint32 *minor,
                                 gss_cred_id_t cred,
@@ -194,8 +203,7 @@ libMoonshotResolveInitiatorCred(OM_uint32 *minor,
     gss_release_buffer(&tmpMinor, &cred->subjectNameConstraint);
     gss_release_buffer(&tmpMinor, &cred->subjectAltNameConstraint);
 
-    if ((serverCertificateHash != NULL)
-       && (strlen(serverCertificateHash) > 0)) {
+    if (!stringEmpty(serverCertificateHash)) {
         size_t len = strlen(serverCertificateHash);
 
         #define HASH_PREFIX             "hash://server/sha256/"
@@ -214,13 +222,13 @@ libMoonshotResolveInitiatorCred(OM_uint32 *minor,
         ((char *)cred->caCertificate.value)[HASH_PREFIX_LEN + len] = '\0';
 
         cred->caCertificate.length = HASH_PREFIX_LEN + len;
-    } else if (caCertificate != NULL) {
+    } else if (!stringEmpty(caCertificate)) {
         makeStringBufferOrCleanup(caCertificate, &cred->caCertificate);
     }
 
-    if (subjectNameConstraint != NULL)
+    if (!stringEmpty(subjectNameConstraint))
         makeStringBufferOrCleanup(subjectNameConstraint, &cred->subjectNameConstraint);
-    if (subjectAltNameConstraint != NULL)
+    if (!stringEmpty(subjectAltNameConstraint))
         makeStringBufferOrCleanup(subjectAltNameConstraint, &cred->subjectAltNameConstraint);
 
 cleanup: