- revert to old idle dir code (marty pointed out a problem with the
authorAndrew Tridgell <tridge@samba.org>
Mon, 7 Oct 1996 15:04:48 +0000 (15:04 +0000)
committerAndrew Tridgell <tridge@samba.org>
Mon, 7 Oct 1996 15:04:48 +0000 (15:04 +0000)
new code)

- handle server level security in the new "detect NT password length
stuffups" code
(This used to be commit 7c135d499409d4ddedb978f681559dae90ac4288)

source3/include/local.h
source3/smbd/reply.c
source3/smbd/server.c
source3/smbd/uid.c

index 465e0029b6ae7dba89512f176a50a008bd3fb7c6..12d3fb9e88bd21f9cf7e17d36a2bd8881f08983e 100644 (file)
 
 
 /* the directory to sit in when idle */
-#define IDLE_DIR "/"
+/* #define IDLE_DIR "/" */
 
 #endif
index 48a0732617e2916d8c9e508e5e33667a9124a3be..a37c1901bea0a3178bb9825a0f00405e61301ea7 100644 (file)
@@ -372,7 +372,7 @@ int reply_sesssetup_and_X(char *inbuf,char *outbuf,int length,int bufsize)
         if passlen1>0 and passlen2>0 then its a NT box and its
         setting passlen2 to some random value which really stuffs
         things up. we need to fix that one.  */
-      if (passlen1 > 0 && passlen2 > 0) {
+      if (passlen1 > 0 && passlen2 > 0 && passlen2 != 24) {
        passlen2 = 0;
       }
       /* we use the first password that they gave */
index 5db62426ca914ddaa65b634941c00255c4a9ca1e..2dc78e0176b0fb85a1fb5763070dba31b127c60c 100644 (file)
@@ -67,6 +67,7 @@ static int num_connections_open = 0;
 
 extern fstring remote_machine;
 
+pstring OriginalDir;
 
 /* these can be set by some functions to override the error codes */
 int unix_ERR_class=SUCCESS;
@@ -3618,6 +3619,8 @@ static void usage(char *pname)
      so set our umask to 0 */
   umask(0);
 
+  GetWd(OriginalDir);
+
   init_uid();
 
   /* this is for people who can't start the program correctly */
index 9312a447a086f6238dcb5e31acc39e0f2e0f84bb..f7005b53cf219f423cfe21582daf3d2327a99384 100644 (file)
@@ -31,6 +31,8 @@ static int initial_gid;
 /* what user is current? */
 struct current_user current_user;
 
+extern pstring OriginalDir;
+
 /****************************************************************************
 initialise the uid routines
 ****************************************************************************/
@@ -54,7 +56,7 @@ void init_uid(void)
 
   current_user.cnum = -1;
 
-  ChDir(IDLE_DIR);
+  ChDir(OriginalDir);
 }
 
 
@@ -280,7 +282,7 @@ BOOL unbecome_user(void )
   if (current_user.cnum == -1)
     return(False);
 
-  ChDir(IDLE_DIR);
+  ChDir(OriginalDir);
 
   if (initial_uid == 0)
     {
@@ -317,9 +319,9 @@ BOOL unbecome_user(void )
   current_user.uid = initial_uid;
   current_user.gid = initial_gid;
   
-  if (ChDir(IDLE_DIR) != 0)
+  if (ChDir(OriginalDir) != 0)
     DEBUG(0,("%s chdir(%s) failed in unbecome_user\n",
-            timestring(),IDLE_DIR));
+            timestring(),OriginalDir));
 
   DEBUG(5,("unbecome_user now uid=(%d,%d) gid=(%d,%d)\n",
        getuid(),geteuid(),getgid(),getegid()));