diff options
author | Jeremy Allison <jra@samba.org> | 1998-04-06 18:14:56 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 1998-04-06 18:14:56 +0000 |
commit | cf15b3bd74a262e7af3d739a83ef7b43df4935e5 (patch) | |
tree | e08aff739325c111aa543f361ffc7c2aff77bdd7 | |
parent | e6a083451f8785fa1c00314a958007fe96fcc039 (diff) | |
download | samba-cf15b3bd74a262e7af3d739a83ef7b43df4935e5.tar.gz samba-cf15b3bd74a262e7af3d739a83ef7b43df4935e5.tar.xz samba-cf15b3bd74a262e7af3d739a83ef7b43df4935e5.zip |
loadparm.c: Cause IPC$ comment to be evaluated at runtime, rather than
load time (patch from "Marty Leisner" <leisner@sdsp.mc.xerox.com>.
server.c: Patch from Josef Hinteregger <joehtg@joehtg.co.at> - string
could be overwritten when find_service() called recursively.
Jeremy.
-rw-r--r-- | source/param/loadparm.c | 2 | ||||
-rw-r--r-- | source/smbd/server.c | 12 |
2 files changed, 11 insertions, 3 deletions
diff --git a/source/param/loadparm.c b/source/param/loadparm.c index 20479bf96d4..837632788e8 100644 --- a/source/param/loadparm.c +++ b/source/param/loadparm.c @@ -1232,7 +1232,7 @@ static BOOL lp_add_ipc(void) if (i < 0) return(False); - sprintf(comment,"IPC Service (%s)",lp_serverstring()); + sprintf(comment,"IPC Service (%s)", Globals.szServerString ); string_set(&iSERVICE(i).szPath,tmpdir()); string_set(&iSERVICE(i).szUsername,""); diff --git a/source/smbd/server.c b/source/smbd/server.c index 8166021fc2d..d0b0304430c 100644 --- a/source/smbd/server.c +++ b/source/smbd/server.c @@ -2214,8 +2214,16 @@ int find_service(char *service) /* just possibly it's a default service? */ if (iService < 0) { - char *defservice = lp_defaultservice(); - if (defservice && *defservice && !strequal(defservice,service)) { + char *pdefservice = lp_defaultservice(); + if (pdefservice && *pdefservice && !strequal(pdefservice,service)) { + /* + * We need to do a local copy here as lp_defaultservice() + * returns one of the rotating lp_string buffers that + * could get overwritten by the recursive find_service() call + * below. Fix from Josef Hinteregger <joehtg@joehtg.co.at>. + */ + pstring defservice; + pstrcpy(defservice, pdefservice); iService = find_service(defservice); if (iService >= 0) { string_sub(service,"_","/"); |