]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
smbd: check lp_load_printers before reload via NetShareEnum
authorDavid Disseldorp <ddiss@samba.org>
Mon, 8 Nov 2021 11:11:17 +0000 (12:11 +0100)
committerAndreas Schneider <asn@cryptomilk.org>
Mon, 8 Nov 2021 13:27:40 +0000 (13:27 +0000)
api_RNetShareEnum() unconditionally attempts to reload printers via
delete_and_reload_printers(). Add a lp_load_printers() check to
obey smb.conf "load printers = off" settings.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=14895

Reported-by: Nate Stuyvesant <nstuyvesant@gmail.com>
Signed-off-by: David Disseldorp <ddiss@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
Autobuild-User(master): Andreas Schneider <asn@cryptomilk.org>
Autobuild-Date(master): Mon Nov  8 13:27:40 UTC 2021 on sn-devel-184

source3/smbd/server_reload.c

index 98ea2a4fda459407e2ac8c0bf733198aa8da7a04..329edf640daa15450be20a8a65ee3018135c2345 100644 (file)
@@ -58,10 +58,16 @@ void delete_and_reload_printers(void)
        const char *pname;
        bool ok;
        time_t pcap_last_update;
-       TALLOC_CTX *frame = talloc_stackframe();
+       TALLOC_CTX *frame = NULL;
        const struct loadparm_substitution *lp_sub =
                loadparm_s3_global_substitution();
 
+       if (!lp_load_printers()) {
+               DBG_DEBUG("skipping printer reload: disabled\n");
+               return;
+       }
+
+       frame = talloc_stackframe();
        ok = pcap_cache_loaded(&pcap_last_update);
        if (!ok) {
                DEBUG(1, ("pcap cache not loaded\n"));