summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;