From c48b7583f65846b9a0805d05341774ea18401ee7 Mon Sep 17 00:00:00 2001 From: Sam Hartman Date: Tue, 24 Jan 2012 12:38:03 -0500 Subject: [PATCH] util_moonshot.c: Handle empty strings in trust anchor arguments. --- mech_eap/util_moonshot.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/mech_eap/util_moonshot.c b/mech_eap/util_moonshot.c index cf64083..46282e8 100644 --- a/mech_eap/util_moonshot.c +++ b/mech_eap/util_moonshot.c @@ -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: -- 2.1.4