From: Derrell Lipman Date: Thu, 31 Mar 2005 20:28:47 +0000 (+0000) Subject: r6155: Fixes bug #1133 X-Git-Tag: samba-misc-tags/initial-v3-0-unstable~5001 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=2c5a6305bd127b1a7e65356c2b3aa5c13cd2bd74;p=thirdparty%2Fsamba.git 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(). --- diff --git a/source/libsmb/libsmbclient.c b/source/libsmb/libsmbclient.c index ae9a660a09a..657d0925b0a 100644 --- a/source/libsmb/libsmbclient.c +++ b/source/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/source/param/loadparm.c b/source/param/loadparm.c index f28b0c49ae4..8ec7efddcdc 100644 --- a/source/param/loadparm.c +++ b/source/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;