svn commit: samba r10969 - in trunk/source/libsmb: .

jra at samba.org jra at samba.org
Thu Oct 13 18:08:17 GMT 2005


Author: jra
Date: 2005-10-13 18:08:16 +0000 (Thu, 13 Oct 2005)
New Revision: 10969

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=10969

Log:
Fix bug #3166 - null pointer dereference if $HOME not
defined. Also clarified confusing error messages.
Jeremy.

Modified:
   trunk/source/libsmb/libsmbclient.c


Changeset:
Modified: trunk/source/libsmb/libsmbclient.c
===================================================================
--- trunk/source/libsmb/libsmbclient.c	2005-10-13 17:03:59 UTC (rev 10968)
+++ trunk/source/libsmb/libsmbclient.c	2005-10-13 18:08:16 UTC (rev 10969)
@@ -5539,6 +5539,7 @@
 
         if (!smbc_initialized) {
                 /* Do some library wide intialisations the first time we get called */
+		BOOL conf_loaded = False;
 
                 /* Set this to what the user wants */
                 DEBUGLEVEL = context->debug;
@@ -5547,16 +5548,22 @@
 
                 /* Here we would open the smb.conf file if needed ... */
                 
-                home = getenv("HOME");
-
-                slprintf(conf, sizeof(conf), "%s/.smb/smb.conf", home);
-                
                 load_interfaces();  /* Load the list of interfaces ... */
                 
                 in_client = True; /* FIXME, make a param */
 
-                if (!lp_load(conf, True, False, False)) {
-
+                home = getenv("HOME");
+		if (home) {
+			slprintf(conf, sizeof(conf), "%s/.smb/smb.conf", home);
+			if (lp_load(conf, True, False, False)) {
+				conf_loaded = True;
+			} else {
+                                DEBUG(5, ("Could not load config file: %s\n",
+                                          conf));
+			}
+               	}
+ 
+		if (!conf_loaded) {
                         /*
                          * Well, if that failed, try the dyn_CONFIGFILE
                          * Which points to the standard locn, and if that
@@ -5565,10 +5572,9 @@
                          */
 
                         if (!lp_load(dyn_CONFIGFILE, True, False, False)) {
-                                DEBUG(5, ("Could not load either config file: "
-                                          "%s or %s\n",
-                                          conf, dyn_CONFIGFILE));
-                        } else {
+                                DEBUG(5, ("Could not load config file: %s\n",
+                                          dyn_CONFIGFILE));
+                        } else if (home) {
                                 /*
                                  * We loaded the global config file.  Now lets
                                  * load user-specific modifications to the



More information about the samba-cvs mailing list