diff options
author | Gerald Carter <jerry@samba.org> | 2006-01-13 18:45:30 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 11:06:06 -0500 |
commit | 68399ce04ca4509d51950d2d7b1ed817e82bf17c (patch) | |
tree | 828f38f047bdb1f9be90eb7b92e6b84010b4996a | |
parent | a77e02177dcefaaccf863aa8d237ea35a2ec52d1 (diff) | |
download | samba-68399ce04ca4509d51950d2d7b1ed817e82bf17c.tar.gz samba-68399ce04ca4509d51950d2d7b1ed817e82bf17c.tar.xz samba-68399ce04ca4509d51950d2d7b1ed817e82bf17c.zip |
r12912: patch from Tony Mountifield <tony@softins.co.uk> for BUG 3327 (fix bad access to gencache.tdb after fork() in smbmount
-rw-r--r-- | source/client/smbmount.c | 3 | ||||
-rw-r--r-- | source/lib/gencache.c | 5 |
2 files changed, 7 insertions, 1 deletions
diff --git a/source/client/smbmount.c b/source/client/smbmount.c index 4438964b838..d8254ef23a7 100644 --- a/source/client/smbmount.c +++ b/source/client/smbmount.c @@ -386,6 +386,9 @@ static void send_fs_socket(char *the_service, char *mount_point, struct cli_stat c = NULL; if (!closed) { + /* close the name cache so that close_our_files() doesn't steal its FD */ + namecache_shutdown(); + /* redirect stdout & stderr since we can't know that the library functions we use are using DEBUG. */ if ( (fd = open("/dev/null", O_WRONLY)) < 0) diff --git a/source/lib/gencache.c b/source/lib/gencache.c index 85599c92d33..fd44616270c 100644 --- a/source/lib/gencache.c +++ b/source/lib/gencache.c @@ -83,10 +83,13 @@ BOOL gencache_init(void) BOOL gencache_shutdown(void) { + int ret; /* tdb_close routine returns -1 on error */ if (!cache) return False; DEBUG(5, ("Closing cache file\n")); - return tdb_close(cache) != -1; + ret = tdb_close(cache); + cache = NULL; + return ret != -1; } |