summaryrefslogtreecommitdiff
path: root/lib/vauth/krb5_sspi.c
diff options
context:
space:
mode:
authorSteve Holme <steve_holme@hotmail.com>2016-04-03 17:30:51 +0100
committerSteve Holme <steve_holme@hotmail.com>2016-04-03 17:30:51 +0100
commit1d451bdd999a254fc8321356514ed04e21e45a0b (patch)
tree2eb552711cd07c26d5562d2e946a5fd0ac06844a /lib/vauth/krb5_sspi.c
parent156b8287a7d68569d6a43240fd7ed6b7380193b5 (diff)
downloadgnurl-1d451bdd999a254fc8321356514ed04e21e45a0b.tar.gz
gnurl-1d451bdd999a254fc8321356514ed04e21e45a0b.tar.bz2
gnurl-1d451bdd999a254fc8321356514ed04e21e45a0b.zip
krb5: Small code tidy up
* Prefer dereference of string pointer rather than strlen() * Free challenge pointer in one place * Additional comments
Diffstat (limited to 'lib/vauth/krb5_sspi.c')
-rw-r--r--lib/vauth/krb5_sspi.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/lib/vauth/krb5_sspi.c b/lib/vauth/krb5_sspi.c
index 605933197..8ba266222 100644
--- a/lib/vauth/krb5_sspi.c
+++ b/lib/vauth/krb5_sspi.c
@@ -113,6 +113,7 @@ CURLcode Curl_auth_create_gssapi_user_message(struct SessionHandle *data,
}
if(!krb5->credentials) {
+ /* Do we have credientials to use or are we using single sign-on? */
if(userp && *userp) {
/* Populate our identity structure */
result = Curl_create_sspi_identity(userp, passwdp, &krb5->identity);
@@ -151,7 +152,7 @@ CURLcode Curl_auth_create_gssapi_user_message(struct SessionHandle *data,
memset(krb5->context, 0, sizeof(CtxtHandle));
}
- if(chlg64 && strlen(chlg64)) {
+ if(chlg64 && *chlg64) {
/* Decode the base-64 encoded challenge message */
if(*chlg64 != '=') {
result = Curl_base64_decode(chlg64, &chlg, &chlglen);
@@ -195,9 +196,10 @@ CURLcode Curl_auth_create_gssapi_user_message(struct SessionHandle *data,
&resp_desc, &attrs,
&expiry);
- if(status != SEC_E_OK && status != SEC_I_CONTINUE_NEEDED) {
- free(chlg);
+ /* Free the decoded challenge as it is not required anymore */
+ free(chlg);
+ if(status != SEC_E_OK && status != SEC_I_CONTINUE_NEEDED) {
return CURLE_RECV_ERROR;
}
@@ -218,9 +220,6 @@ CURLcode Curl_auth_create_gssapi_user_message(struct SessionHandle *data,
result = CURLE_OUT_OF_MEMORY;
}
- /* Free the decoded challenge */
- free(chlg);
-
return result;
}