summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDerrell Lipman <derrell@samba.org>2005-03-31 20:28:47 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 10:56:25 -0500
commit8de11f06df03e19fe92f44da10a10eab30e118b2 (patch)
tree110af07308ea2c4a2f96497840f45ad9cb0fbd2a
parentfd52f0eeae34fee8e996d6c906717cee043d7243 (diff)
downloadsamba-8de11f06df03e19fe92f44da10a10eab30e118b2.tar.gz
samba-8de11f06df03e19fe92f44da10a10eab30e118b2.tar.bz2
samba-8de11f06df03e19fe92f44da10a10eab30e118b2.zip
r6155: Fixes bug #1133
Added provision for overloading some global configuration options via the new, per-user file ~/.smb/smb.conf.append which is read after the global config file is read (and only if the global config file was read). This leave the original, BC behavior of ~/.smb/smb.conf which, if found, is read but causes the global config file to not be read. Also fixed a potential seg fault in to lp_dump_one(). (This used to be commit 2c5a6305bd127b1a7e65356c2b3aa5c13cd2bd74)
-rw-r--r--source3/libsmb/libsmbclient.c23
-rw-r--r--source3/param/loadparm.c2
2 files changed, 20 insertions, 5 deletions
diff --git a/source3/libsmb/libsmbclient.c b/source3/libsmb/libsmbclient.c
index ae9a660a09..657d0925b0 100644
--- a/source3/libsmb/libsmbclient.c
+++ b/source3/libsmb/libsmbclient.c
@@ -5169,10 +5169,25 @@ SMBCCTX * smbc_init_context(SMBCCTX * context)
* defaults ...
*/
- if (!lp_load(dyn_CONFIGFILE, True, False, False)) {
- DEBUG(5, ("Could not load either config file: %s or %s\n",
- conf, dyn_CONFIGFILE));
- }
+ if (!lp_load(dyn_CONFIGFILE, True, False, False)) {
+ DEBUG(5, ("Could not load either config file: "
+ "%s or %s\n",
+ conf, dyn_CONFIGFILE));
+ } else {
+ /*
+ * We loaded the global config file. Now lets
+ * load user-specific modifications to the
+ * global config.
+ */
+ slprintf(conf, sizeof(conf),
+ "%s/.smb/smb.conf.append", home);
+ if (!lp_load(conf, True, False, False)) {
+ DEBUG(10,
+ ("Could not append config file: "
+ "%s\n",
+ conf));
+ }
+ }
}
reopen_logs(); /* Get logging working ... */
diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c
index f28b0c49ae..8ec7efddcd 100644
--- a/source3/param/loadparm.c
+++ b/source3/param/loadparm.c
@@ -73,7 +73,7 @@ extern pstring user_socket_options;
/* some helpful bits */
#define LP_SNUM_OK(i) (((i) >= 0) && ((i) < iNumServices) && ServicePtrs[(i)]->valid)
-#define VALID(i) ServicePtrs[i]->valid
+#define VALID(i) (ServicePtrs != NULL && ServicePtrs[i]->valid)
int keepalive = DEFAULT_KEEPALIVE;
BOOL use_getwd_cache = True;