cleanup, fix some uninitialised variable warnings
authorLuke Howard <lukeh@padl.com>
Wed, 13 Oct 2010 00:09:52 +0000 (11:09 +1100)
committerLuke Howard <lukeh@padl.com>
Wed, 13 Oct 2010 00:09:52 +0000 (11:09 +1100)
20 files changed:
display_status.c
export_sec_context.c
get_mic.c
import_sec_context.c
init_sec_context.c
inquire_attrs_for_mech.c
inquire_cred.c
inquire_cred_by_oid.c
inquire_mech_for_saslname.c
inquire_sec_context_by_oid.c
store_cred.c
unwrap_iov.c
util_cred.c
util_exts.c
util_name.c
util_reauth.c
wrap.c
wrap_iov.c
wrap_iov_length.c
wrap_size_limit.c

index d285113..bd19849 100644 (file)
@@ -141,7 +141,7 @@ gss_display_status(OM_uint32 *minor,
                    OM_uint32 *message_context,
                    gss_buffer_t status_string)
 {
-    OM_uint32 major = GSS_S_COMPLETE;
+    OM_uint32 major;
     krb5_context krbContext = NULL;
     const char *errMsg;
 
@@ -149,11 +149,13 @@ gss_display_status(OM_uint32 *minor,
     status_string->value = NULL;
 
     if (!gssEapIsMechanismOid(mech_type)) {
+        *minor = GSSEAP_WRONG_MECH;
         return GSS_S_BAD_MECH;
     }
 
     if (status_type != GSS_C_MECH_CODE) {
         /* we rely on the mechglue for GSS_C_GSS_CODE */
+        *minor = 0;
         return GSS_S_BAD_STATUS;
     }
 
@@ -165,8 +167,12 @@ gss_display_status(OM_uint32 *minor,
         errMsg = krb5_get_error_message(krbContext, status_value);
     }
 
-    if (errMsg != NULL)
+    if (errMsg != NULL) {
         major = makeStringBuffer(minor, errMsg, status_string);
+    } else {
+        major = GSS_S_COMPLETE;
+        *minor = 0;
+    }
 
     if (krbContext != NULL)
         krb5_free_error_message(krbContext, errMsg);
index 1582886..1f4e6fe 100644 (file)
@@ -58,8 +58,8 @@ gssEapExportPartialContext(OM_uint32 *minor,
 
     token->value = GSSEAP_MALLOC(length);
     if (token->value == NULL) {
-        *minor = ENOMEM;
         major = GSS_S_FAILURE;
+        *minor = ENOMEM;
         goto cleanup;
     }
     token->length = length;
@@ -154,8 +154,8 @@ gssEapExportSecContext(OM_uint32 *minor,
 
     token->value = GSSEAP_MALLOC(length);
     if (token->value == NULL) {
-        *minor = ENOMEM;
         major = GSS_S_FAILURE;
+        *minor = ENOMEM;
         goto cleanup;
     }
     token->length = length;
index 2fa71a2..45c96ec 100644 (file)
--- a/get_mic.c
+++ b/get_mic.c
@@ -55,8 +55,8 @@ gss_get_mic(OM_uint32 *minor,
     GSSEAP_MUTEX_LOCK(&ctx->mutex);
 
     if (!CTX_IS_ESTABLISHED(ctx)) {
-        *minor = GSSEAP_CONTEXT_INCOMPLETE;
         major = GSS_S_NO_CONTEXT;
+        *minor = GSSEAP_CONTEXT_INCOMPLETE;
         goto cleanup;
     }
 
index 646c107..084ca87 100644 (file)
@@ -311,8 +311,8 @@ gssEapImportContext(OM_uint32 *minor,
     assert(remain == 0);
 #endif
 
-    *minor = 0;
     major = GSS_S_COMPLETE;
+    *minor = 0;
 
     return major;
 }
index eb5a76d..a0cb7d9 100644 (file)
@@ -365,8 +365,8 @@ initBegin(OM_uint32 *minor,
         if (!gssEapInternalizeOid(mech, &ctx->mechanismUsed))
             major = duplicateOid(minor, mech, &ctx->mechanismUsed);
     } else {
-        *minor = GSSEAP_WRONG_MECH;
         major = GSS_S_BAD_MECH;
+        *minor = GSSEAP_WRONG_MECH;
     }
     if (GSS_ERROR(major))
         return major;
@@ -453,8 +453,8 @@ eapGssSmInitAuthenticate(OM_uint32 *minor,
                                                  ctx,
                                                  &eapConfig);
         if (ctx->initiatorCtx.eap == NULL) {
-            *minor = GSSEAP_PEER_SM_INIT_FAILURE;
             major = GSS_S_FAILURE;
+            *minor = GSSEAP_PEER_SM_INIT_FAILURE;
             goto cleanup;
         }
 
@@ -482,14 +482,14 @@ eapGssSmInitAuthenticate(OM_uint32 *minor,
         major = GSS_S_CONTINUE_NEEDED;
         ctx->state = EAP_STATE_EXTENSIONS_REQ;
     } else if (ctx->flags & CTX_FLAG_EAP_FAIL) {
-        *minor = GSSEAP_PEER_AUTH_FAILURE;
         major = GSS_S_DEFECTIVE_CREDENTIAL;
+        *minor = GSSEAP_PEER_AUTH_FAILURE;
     } else if (code == 0 && initialContextToken) {
         resp = &emptyWpaBuffer;
         major = GSS_S_CONTINUE_NEEDED;
     } else {
-        *minor = GSSEAP_PEER_BAD_MESSAGE;
         major = GSS_S_DEFECTIVE_TOKEN;
+        *minor = GSSEAP_PEER_BAD_MESSAGE;
     }
 
 cleanup:
@@ -608,8 +608,8 @@ eapGssSmInitError(OM_uint32 *minor,
     *minor = ERROR_TABLE_BASE_eapg + load_uint32_be(&p[4]);
 
     if (!GSS_ERROR(major)) {
-        *minor = GSSEAP_BAD_ERROR_TOKEN;
         major = GSS_S_FAILURE;
+        *minor = GSSEAP_BAD_ERROR_TOKEN;
     }
 
     return major;
@@ -714,8 +714,8 @@ gss_init_sec_context(OM_uint32 *minor,
 #endif
 
     if ((cred->flags & CRED_FLAG_INITIATE) == 0) {
-        *minor = GSSEAP_CRED_USAGE_MISMATCH;
         major = GSS_S_NO_CRED;
+        *minor = GSSEAP_CRED_USAGE_MISMATCH;
         goto cleanup;
     }
 
@@ -730,8 +730,8 @@ gss_init_sec_context(OM_uint32 *minor,
         if (tokType == TOK_TYPE_CONTEXT_ERR) {
             ctx->state = EAP_STATE_ERROR;
         } else if (tokType != sm->inputTokenType) {
-            *minor = GSSEAP_WRONG_TOK_ID;
             major = GSS_S_DEFECTIVE_TOKEN;
+            *minor = GSSEAP_WRONG_TOK_ID;
             goto cleanup;
         }
     } else {
index a40e63e..1d17a9d 100644 (file)
@@ -124,6 +124,9 @@ gss_inquire_attrs_for_mech(OM_uint32 *minor,
 #endif
     }
 
+    major = GSS_S_COMPLETE;
+    *minor = 0;
+
 cleanup:
     if (GSS_ERROR(major)) {
         gss_release_oid_set(&tmpMinor, mech_attrs);
index 138552d..3f185c7 100644 (file)
@@ -40,7 +40,7 @@ gss_inquire_cred(OM_uint32 *minor,
                  gss_cred_usage_t *cred_usage,
                  gss_OID_set *mechanisms)
 {
-    OM_uint32 major = GSS_S_COMPLETE;
+    OM_uint32 major;
 
     if (cred == NULL) {
         *minor = EINVAL;
@@ -95,8 +95,8 @@ gss_inquire_cred(OM_uint32 *minor,
             goto cleanup;
     }
 
-    *minor = 0;
     major = GSS_S_COMPLETE;
+    *minor = 0;
 
 cleanup:
     GSSEAP_MUTEX_UNLOCK(&cred->mutex);
index 5abdc2d..8212a1d 100644 (file)
@@ -45,7 +45,7 @@ gss_inquire_cred_by_oid(OM_uint32 *minor,
                         const gss_OID desired_object,
                         gss_buffer_set_t *data_set)
 {
-    OM_uint32 major = GSS_S_UNAVAILABLE;
+    OM_uint32 major;
     int i;
 
     *data_set = GSS_C_NO_BUFFER_SET;
index ca54540..9b7c5d9 100644 (file)
@@ -67,8 +67,8 @@ gss_inquire_saslname_for_mech(OM_uint32 *minor,
     if (sasl_mech_name != GSS_C_NO_BUFFER) {
         name = gssEapOidToSaslName(mech);
         if (name == GSS_C_NO_BUFFER) {
-            *minor = GSSEAP_WRONG_MECH;
             major = GSS_S_BAD_MECH;
+            *minor = GSSEAP_WRONG_MECH;
         } else {
             major = duplicateBuffer(minor, name, sasl_mech_name);
         }
index 71f7202..e6437c1 100644 (file)
@@ -69,6 +69,7 @@ inquireSessionKey(OM_uint32 *minor,
         goto cleanup;
 
     major = GSS_S_COMPLETE;
+    *minor = 0;
 
 cleanup:
     if (GSS_ERROR(major) && *dataSet != GSS_C_NO_BUFFER_SET) {
index 43cab99..9e308c4 100644 (file)
@@ -42,20 +42,23 @@ gss_store_cred(OM_uint32 *minor,
                gss_OID_set *elements_stored,
                gss_cred_usage_t *cred_usage_stored)
 {
-    OM_uint32 major = GSS_S_UNAVAILABLE;
-
-    *minor = 0;
+    OM_uint32 major;
 
     if (elements_stored != NULL)
         *elements_stored = GSS_C_NO_OID_SET;
     if (cred_usage_stored != NULL)
         *cred_usage_stored = input_usage;
 
-    if (cred == GSS_C_NO_CREDENTIAL)
+    if (cred == GSS_C_NO_CREDENTIAL) {
+        *minor = EINVAL;
         return GSS_S_CALL_INACCESSIBLE_READ | GSS_S_NO_CRED;
+    }
 
     GSSEAP_MUTEX_LOCK(&cred->mutex);
 
+    major = GSS_S_COMPLETE;
+    *minor = 0;
+
 #ifdef GSSEAP_ENABLE_REAUTH
     if (cred->krbCred != GSS_C_NO_CREDENTIAL) {
         major = gssStoreCred(minor,
index 5f4237e..fca9d64 100644 (file)
@@ -411,8 +411,8 @@ unwrapStream(OM_uint32 *minor,
     if (stream->buffer.length < theader->buffer.length +
         tpadding->buffer.length +
         ttrailer->buffer.length) {
-        code = GSSEAP_TOK_TRUNC;
         major = GSS_S_DEFECTIVE_TOKEN;
+        code = GSSEAP_TOK_TRUNC;
         goto cleanup;
     }
 
@@ -504,8 +504,8 @@ gss_unwrap_iov(OM_uint32 *minor,
     GSSEAP_MUTEX_LOCK(&ctx->mutex);
 
     if (!CTX_IS_ESTABLISHED(ctx)) {
-        *minor = GSSEAP_CONTEXT_INCOMPLETE;
         major = GSS_S_NO_CONTEXT;
+        *minor = GSSEAP_CONTEXT_INCOMPLETE;
         goto cleanup;
     }
 
index f70a023..b7b3f57 100644 (file)
@@ -143,8 +143,8 @@ gssEapAcquireCred(OM_uint32 *minor,
 
             /* default host-based service is host@localhost */
             if (gethostname(&serviceName[5], MAXHOSTNAMELEN) != 0) {
-                *minor = GSSEAP_NO_HOSTNAME;
                 major = GSS_S_FAILURE;
+                *minor = GSSEAP_NO_HOSTNAME;
                 goto cleanup;
             }
 
@@ -198,8 +198,8 @@ gssEapAcquireCred(OM_uint32 *minor,
         cred->flags |= CRED_FLAG_ACCEPT;
         break;
     default:
-        *minor = GSSEAP_BAD_USAGE;
         major = GSS_S_FAILURE;
+        *minor = GSSEAP_BAD_USAGE;
         goto cleanup;
         break;
     }
@@ -222,7 +222,9 @@ gssEapAcquireCred(OM_uint32 *minor,
         *timeRec = GSS_C_INDEFINITE;
 
     *pCred = cred;
+
     major = GSS_S_COMPLETE;
+    *minor = 0;
 
 cleanup:
     if (GSS_ERROR(major))
index dfdf7c6..5fa8345 100644 (file)
@@ -92,8 +92,8 @@ verifyGssChannelBindings(OM_uint32 *minor,
 
     if (chanBindings != GSS_C_NO_CHANNEL_BINDINGS &&
         !bufferEqual(&iov[0].buffer, &chanBindings->application_data)) {
-        *minor = GSSEAP_BINDINGS_MISMATCH;
         major = GSS_S_BAD_BINDINGS;
+        *minor = GSSEAP_BINDINGS_MISMATCH;
     } else {
         major = GSS_S_COMPLETE;
     }
@@ -185,8 +185,8 @@ makeExtensions(OM_uint32 *minor,
 
     types = GSSEAP_CALLOC(nexts, sizeof(OM_uint32));
     if (types == NULL) {
-        *minor = ENOMEM;
         major = GSS_S_FAILURE;
+        *minor = ENOMEM;
         goto cleanup;
     }
 
@@ -288,8 +288,8 @@ verifyExtensions(OM_uint32 *minor,
             types[j] |= EXT_FLAG_VERIFIED;
         } else if (ext->required) {
             /* Required extension missing */
-            *minor = GSSEAP_MISSING_REQUIRED_EXT;
             major = GSS_S_UNAVAILABLE;
+            *minor = GSSEAP_MISSING_REQUIRED_EXT;
             goto cleanup;
         }
     }
@@ -298,14 +298,14 @@ verifyExtensions(OM_uint32 *minor,
     for (i = 0; i < extensions->count; i++) {
         if ((types[i] & EXT_FLAG_CRITICAL) &&
             (types[i] & EXT_FLAG_VERIFIED) == 0) {
-            *minor = GSSEAP_CRIT_EXT_UNAVAILABLE;
             major = GSS_S_UNAVAILABLE;
+            *minor = GSSEAP_CRIT_EXT_UNAVAILABLE;
             goto cleanup;
         }
     }
 
-    *minor = 0;
     major = GSS_S_COMPLETE;
+    *minor = 0;
 
 cleanup:
     gss_release_buffer_set(&tmpMinor, &extensions);
@@ -362,8 +362,8 @@ encodeExtensions(OM_uint32 *minor,
      */
     buffer->value = GSSEAP_MALLOC(required ? required : 1);
     if (buffer->value == NULL) {
-        *minor = ENOMEM;
         major = GSS_S_FAILURE;
+        *minor = ENOMEM;
         goto cleanup;
     }
 
@@ -431,16 +431,16 @@ decodeExtensions(OM_uint32 *minor,
         gss_buffer_desc extension;
 
         if (remain < 8) {
-            *minor = GSSEAP_TOK_TRUNC;
             major = GSS_S_DEFECTIVE_TOKEN;
+            *minor = GSSEAP_TOK_TRUNC;
             goto cleanup;
         }
 
         ntypes = GSSEAP_REALLOC(types,
                                 (extensions->count + 1) * sizeof(OM_uint32));
         if (ntypes == NULL) {
-            *minor = ENOMEM;
             major = GSS_S_FAILURE;
+            *minor = ENOMEM;
             goto cleanup;
         }
         types = ntypes;
@@ -449,8 +449,8 @@ decodeExtensions(OM_uint32 *minor,
         extension.length = load_uint32_be(&p[4]);
 
         if (remain < 8 + extension.length) {
-            *minor = GSSEAP_TOK_TRUNC;
             major = GSS_S_DEFECTIVE_TOKEN;
+            *minor = GSSEAP_TOK_TRUNC;
             goto cleanup;
         }
         extension.value = &p[8];
index 4b9ab95..45cd26d 100644 (file)
@@ -228,8 +228,8 @@ importUserName(OM_uint32 *minor,
 
 #define CHECK_REMAIN(n)     do {        \
         if (remain < (n)) {             \
-            *minor = GSSEAP_TOK_TRUNC;  \
             major = GSS_S_BAD_NAME;     \
+            *minor = GSSEAP_TOK_TRUNC;  \
             goto cleanup;               \
         }                               \
     } while (0)
@@ -309,6 +309,7 @@ gssEapImportNameInternal(OM_uint32 *minor,
     }
 
     major = GSS_S_COMPLETE;
+    *minor = 0;
 
 cleanup:
     if (GSS_ERROR(major))
@@ -464,8 +465,8 @@ gssEapExportNameInternal(OM_uint32 *minor,
 
     assert(p == (unsigned char *)exportedName->value + exportedNameLen);
 
-    *minor = 0;
     major = GSS_S_COMPLETE;
+    *minor = 0;
 
 cleanup:
     gss_release_buffer(&tmpMinor, &attrs);
index 239f2b8..52b9976 100644 (file)
@@ -317,7 +317,7 @@ getDefaultReauthCredentials(OM_uint32 *minor,
 {
     OM_uint32 major = GSS_S_CRED_UNAVAIL;
     krb5_context krbContext = NULL;
-    krb5_error_code code;
+    krb5_error_code code = 0;
     krb5_ccache ccache = NULL;
     krb5_creds match = { 0 };
     krb5_creds creds = { 0 };
diff --git a/wrap.c b/wrap.c
index 122945e..3be87d5 100644 (file)
--- a/wrap.c
+++ b/wrap.c
@@ -53,8 +53,8 @@ gss_wrap(OM_uint32 *minor,
     GSSEAP_MUTEX_LOCK(&ctx->mutex);
 
     if (!CTX_IS_ESTABLISHED(ctx)) {
-        *minor = GSSEAP_CONTEXT_INCOMPLETE;
         major = GSS_S_NO_CONTEXT;
+        *minor = GSSEAP_CONTEXT_INCOMPLETE;
         goto cleanup;
     }
 
index 0b4fcd5..9e6933d 100644 (file)
@@ -340,8 +340,8 @@ gss_wrap_iov(OM_uint32 *minor,
     GSSEAP_MUTEX_LOCK(&ctx->mutex);
 
     if (!CTX_IS_ESTABLISHED(ctx)) {
-        *minor = GSSEAP_CONTEXT_INCOMPLETE;
         major = GSS_S_NO_CONTEXT;
+        *minor = GSSEAP_CONTEXT_INCOMPLETE;
         goto cleanup;
     }
 
index 25bc3be..b9bbfdc 100644 (file)
@@ -200,8 +200,8 @@ gss_wrap_iov_length(OM_uint32 *minor,
     GSSEAP_MUTEX_LOCK(&ctx->mutex);
 
     if (!CTX_IS_ESTABLISHED(ctx)) {
-        *minor = GSSEAP_CONTEXT_INCOMPLETE;
         major = GSS_S_NO_CONTEXT;
+        *minor = GSSEAP_CONTEXT_INCOMPLETE;
         goto cleanup;
     }
 
index 8fd9251..4e7a0da 100644 (file)
@@ -53,8 +53,8 @@ gss_wrap_size_limit(OM_uint32 *minor,
     GSSEAP_MUTEX_LOCK(&ctx->mutex);
 
     if (!CTX_IS_ESTABLISHED(ctx)) {
-        *minor = GSSEAP_CONTEXT_INCOMPLETE;
         major = GSS_S_NO_CONTEXT;
+        *minor = GSSEAP_CONTEXT_INCOMPLETE;
         goto cleanup;
     }