summaryrefslogtreecommitdiff
path: root/auth
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2021-04-21 11:30:20 +0200
committerAndreas Schneider <asn@cryptomilk.org>2021-04-27 13:24:35 +0000
commitad7628b2cb254d9b25ee70f86edfeb725e809b01 (patch)
tree34c1b3edf6abac495d935ff2a6a1cb656bace4e0 /auth
parent349bd015d227a625990af7122e39319431f7af8d (diff)
downloadsamba-ad7628b2cb254d9b25ee70f86edfeb725e809b01.tar.gz
gensec: Slightly simplify gensec_generate_session_info_pac()
Reduce indentation by an early error return and by introducing a helper variable. Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Andreas Schneider <asn@samba.org>
Diffstat (limited to 'auth')
-rw-r--r--auth/gensec/gensec_util.c30
1 files changed, 19 insertions, 11 deletions
diff --git a/auth/gensec/gensec_util.c b/auth/gensec/gensec_util.c
index e185acc0c20..e411751c3af 100644
--- a/auth/gensec/gensec_util.c
+++ b/auth/gensec/gensec_util.c
@@ -38,6 +38,8 @@ NTSTATUS gensec_generate_session_info_pac(TALLOC_CTX *mem_ctx,
struct auth_session_info **session_info)
{
uint32_t session_info_flags = 0;
+ struct auth4_context *auth_context = NULL;
+ NTSTATUS status;
if (gensec_security->want_features & GENSEC_FEATURE_UNIX_TOKEN) {
session_info_flags |= AUTH_SESSION_INFO_UNIX_TOKEN;
@@ -55,19 +57,25 @@ NTSTATUS gensec_generate_session_info_pac(TALLOC_CTX *mem_ctx,
"user lookup\n", principal_string);
}
- if (gensec_security->auth_context && gensec_security->auth_context->generate_session_info_pac) {
- return gensec_security->auth_context->generate_session_info_pac(gensec_security->auth_context,
- mem_ctx,
- smb_krb5_context,
- pac_blob,
- principal_string,
- remote_address,
- session_info_flags,
- session_info);
- } else {
- DEBUG(0, ("Cannot generate a session_info without the auth_context\n"));
+ auth_context = gensec_security->auth_context;
+
+ if ((auth_context == NULL) ||
+ (auth_context->generate_session_info_pac == NULL)) {
+ DBG_ERR("Cannot generate a session_info without "
+ "the auth_context\n");
return NT_STATUS_INTERNAL_ERROR;
}
+
+ status = auth_context->generate_session_info_pac(
+ auth_context,
+ mem_ctx,
+ smb_krb5_context,
+ pac_blob,
+ principal_string,
+ remote_address,
+ session_info_flags,
+ session_info);
+ return status;
}
/*