]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
spoolss: purge the printer name cache on name change
authorDavid Disseldorp <ddiss@samba.org>
Tue, 31 Mar 2015 23:03:13 +0000 (01:03 +0200)
committerKarolin Seeger <kseeger@samba.org>
Tue, 21 Apr 2015 00:16:00 +0000 (02:16 +0200)
Currently the name cache is only cleared on printer deletion. This means
that if a printer undergoes a name change, the old name remains in the
cache and can be subsequently used incorrecly if another printer takes
the same name as the old.

Bug: https://bugzilla.samba.org/show_bug.cgi?id=11210

Reported-by: Franz Pförtsch <franz.pfoertsch@brose.com>
Signed-off-by: David Disseldorp <ddiss@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Tue Apr 14 05:37:50 CEST 2015 on sn-devel-104

(cherry picked from commit a97507a9a7ba01beead6a621e1210618e93a9f9c)

Autobuild-User(v4-1-test): Karolin Seeger <kseeger@samba.org>
Autobuild-Date(v4-1-test): Tue Apr 21 02:16:00 CEST 2015 on sn-devel-104

source3/rpc_server/spoolss/srv_spoolss_nt.c

index 34f0b5707d92cae675463cd4e0c77fa7c31e9e98..42caff1025ba2279b37a0b6597526d1b2c3ad52e 100644 (file)
@@ -6472,6 +6472,9 @@ static WERROR update_dsspooler(TALLOC_CTX *mem_ctx,
                                                 snum, printer->sharename ?
                                                 printer->sharename : "");
                }
+
+               /* name change, purge any cache entries for the old */
+               prune_printername_cache();
        }
 
        if (printer->printername != NULL &&
@@ -6508,6 +6511,9 @@ static WERROR update_dsspooler(TALLOC_CTX *mem_ctx,
                        notify_printer_printername(server_event_context(),
                                                   msg_ctx, snum, p ? p : "");
                }
+
+               /* name change, purge any cache entries for the old */
+               prune_printername_cache();
        }
 
        if (printer->portname != NULL &&