gensec: Slightly simplify gensec_generate_session_info_pac()
authorVolker Lendecke <vl@samba.org>
Wed, 21 Apr 2021 09:30:20 +0000 (11:30 +0200)
committerAndreas Schneider <asn@cryptomilk.org>
Tue, 27 Apr 2021 13:24:35 +0000 (13:24 +0000)
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>
auth/gensec/gensec_util.c

index e185acc0c2055917876df0151b4b417749f26903..e411751c3af2b3294284de34f5a72aafcbdb3a0b 100644 (file)
@@ -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;
 }
 
 /*