krb5_svc_get_msg(code,&str);
#elif defined(HAVE_KRB5_GET_ERROR_MESSAGE)
krb5_context context;
- krb5_init_context(&context);
- str = krb5_get_error_message(context, code);
- krb5_free_context(context);
+ if (krb5_init_context(&context) == 0) {
+ str = krb5_get_error_message(context, code);
+ krb5_free_context(context);
+ }
#else
; /* IRIX apparently has neither: use the string we have */
#endif
{
int code = ENOENT;
#ifdef HAVE_KERBEROS
- krb5_context context;
+ krb5_context context = NULL;
krb5_creds match;
krb5_creds *cred;
krb5_ccache cc;
krb5_free_cred_contents(context, &match);
if (cc)
krb5_cc_close(context, cc);
- krb5_free_context(context);
goto try_anon;
}
krb5_free_cred_contents(context, &match);
if (cc)
krb5_cc_close(context, cc);
- krb5_free_context(context);
goto try_anon;
}
}
cell->scindex = 2;
return 0;
- try_anon:
+ try_anon:
+ if (context != NULL) {
+ krb5_free_context(context);
+ }
#endif /* HAVE_KERBEROS */
if (try_anonymous)
return _GetNullSecurityObject(cell);
*key_out = keyblock2key(new_key);
done:
if (ret != 0 && new_key != NULL) {
- krb5_free_context(new_key->init_ctx);
+ if (new_key->init_ctx != NULL) {
+ krb5_free_context(new_key->init_ctx);
+ }
rxi_Free(new_key, sizeof(*new_key));
}
return ktor(ret);
keyblock = key2keyblock(*key);
krb5_free_keyblock_contents(keyblock->init_ctx, &keyblock->key);
- krb5_free_context(keyblock->init_ctx);
+ if (keyblock->init_ctx != NULL) {
+ krb5_free_context(keyblock->init_ctx);
+ }
rxi_Free(keyblock, sizeof(*keyblock));
*key = NULL;
}
*out = len;
done:
- krb5_free_context(ctx);
+ if (ctx != NULL) {
+ krb5_free_context(ctx);
+ }
return ktor(ret);
}
free_Checksum(&cksum);
if (crypto != NULL)
krb5_crypto_destroy(ctx, crypto);
- krb5_free_context(ctx);
+ if (ctx != NULL) {
+ krb5_free_context(ctx);
+ }
return ktor(ret);
}
free_Checksum(&cksum);
if (crypto != NULL)
krb5_crypto_destroy(ctx, crypto);
- krb5_free_context(ctx);
+ if (ctx != NULL) {
+ krb5_free_context(ctx);
+ }
return ktor(ret);
}
if (crypto != NULL)
krb5_crypto_destroy(ctx, crypto);
krb5_data_free(&kd_out);
- krb5_free_context(ctx);
+ if (ctx != NULL) {
+ krb5_free_context(ctx);
+ }
return ktor(ret);
}
if (crypto != NULL)
krb5_crypto_destroy(ctx, crypto);
krb5_data_free(&kd_out);
- krb5_free_context(ctx);
+ if (ctx != NULL) {
+ krb5_free_context(ctx);
+ }
return ktor(ret);
}
if (crypto != NULL)
krb5_crypto_destroy(ctx, crypto);
krb5_data_free(&prf_out);
- krb5_free_context(ctx);
+ if (ctx != NULL) {
+ krb5_free_context(ctx);
+ }
rxi_Free(prf_in.data, prf_in.length);
if (pre_key != NULL)
rxi_Free(pre_key, iterations * block_len);
done:
if (crypto != NULL)
krb5_crypto_destroy(ctx, crypto);
- krb5_free_context(ctx);
+ if (ctx != NULL) {
+ krb5_free_context(ctx);
+ }
return ktor(ret);
}