]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s3:smbd: expand scope of lp_ctx variable in main()
authorStefan Metzmacher <metze@samba.org>
Tue, 8 Apr 2025 07:42:50 +0000 (09:42 +0200)
committerStefan Metzmacher <metze@samba.org>
Fri, 18 Apr 2025 10:17:30 +0000 (10:17 +0000)
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
source3/smbd/server.c

index 3c5907d5aa562f2d55a1348d7f9fa371c7940d6d..814be6cdf763e875f46b24e5df7d0e6d89f6cabd 100644 (file)
@@ -1827,6 +1827,7 @@ extern void build_options(bool screen);
        struct tevent_signal *se;
        int profiling_level;
        char *np_dir = NULL;
+       struct loadparm_context *lp_ctx = NULL;
        const struct loadparm_substitution *lp_sub =
                loadparm_s3_global_substitution();
        static const struct smbd_shim smbd_shim_fns =
@@ -2027,6 +2028,11 @@ extern void build_options(bool screen);
                exit(1);
        }
 
+       lp_ctx = loadparm_init_s3(frame, loadparm_s3_helpers());
+       if (lp_ctx == NULL) {
+               exit_server("ERROR: loadparm_init_s3()");
+       }
+
        if (lp_server_role() == ROLE_ACTIVE_DIRECTORY_DC) {
                if (!lp_parm_bool(-1, "server role check", "inhibit", false)) {
                        DBG_ERR("server role = 'active directory domain controller' not compatible with running smbd standalone. \n");
@@ -2182,11 +2188,9 @@ extern void build_options(bool screen);
        }
 
        if (lp_server_role() == ROLE_DOMAIN_BDC || lp_server_role() == ROLE_DOMAIN_PDC || lp_server_role() == ROLE_IPA_DC) {
-               struct loadparm_context *lp_ctx = loadparm_init_s3(NULL, loadparm_s3_helpers());
                if (!open_schannel_session_store(NULL, lp_ctx)) {
                        exit_daemon("ERROR: Samba cannot open schannel store for secured NETLOGON operations.", EACCES);
                }
-               TALLOC_FREE(lp_ctx);
        }
 
        if(!get_global_sam_sid()) {