summaryrefslogtreecommitdiff
path: root/source3/lib/util_pw.c
diff options
context:
space:
mode:
authorVolker Lendecke <vlendec@samba.org>2005-03-03 16:52:44 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 10:55:53 -0500
commit140752fd35bd5701b3078abf695f811d933fe893 (patch)
tree1b66bc1d681aff4a5d62bc0647c4dd8683545377 /source3/lib/util_pw.c
parent85b094801e3dcabc7aa86360371515c5c471027f (diff)
downloadsamba-140752fd35bd5701b3078abf695f811d933fe893.tar.gz
samba-140752fd35bd5701b3078abf695f811d933fe893.tar.bz2
samba-140752fd35bd5701b3078abf695f811d933fe893.zip
r5647: Caches are good for performance, but you get a consistency problem.
Fix bug # 2401. Volker (This used to be commit eb4ef94f244d28fe531d0b9f724a66ed3834b687)
Diffstat (limited to 'source3/lib/util_pw.c')
-rw-r--r--source3/lib/util_pw.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/source3/lib/util_pw.c b/source3/lib/util_pw.c
index 0d7ffe09e9..13349bad34 100644
--- a/source3/lib/util_pw.c
+++ b/source3/lib/util_pw.c
@@ -70,6 +70,20 @@ static void init_pwnam_cache(void)
return;
}
+void flush_pwnam_cache(void)
+{
+ int i;
+
+ init_pwnam_cache();
+
+ for (i=0; i<PWNAMCACHE_SIZE; i++) {
+ if (pwnam_cache[i] == NULL)
+ continue;
+
+ passwd_free(&pwnam_cache[i]);
+ }
+}
+
struct passwd *getpwnam_alloc(const char *name)
{
int i;