merges from 3.0
authorGerald Carter <jerry@samba.org>
Tue, 16 Mar 2004 20:32:14 +0000 (20:32 +0000)
committerGerald Carter <jerry@samba.org>
Tue, 16 Mar 2004 20:32:14 +0000 (20:32 +0000)
source/auth/auth_util.c
source/nsswitch/winbindd.c
source/nsswitch/winbindd_group.c

index c74f01ab6795d90ccf9716b84c92c401a4768561..0de47f9107028a4308768a09b5768fd60017278d 100644 (file)
@@ -995,6 +995,7 @@ struct passwd *smb_getpwnam( char *domuser, fstring save_username, BOOL create )
        struct passwd *pw = NULL;
        char *p;
        fstring mapped_username;
+       fstring strip_username;
        
        /* we only save a copy of the username it has been mangled 
           by winbindd use default domain */
@@ -1032,9 +1033,11 @@ struct passwd *smb_getpwnam( char *domuser, fstring save_username, BOOL create )
                }
 
                /* setup for lookup of just the username */
-               p++;
-               fstrcpy( mapped_username, p );
+               /* remember that p and mapped_username are overlapping memory */
 
+               p++;
+               fstrcpy( strip_username, p );
+               fstrcpy( mapped_username, strip_username );
        }
        
        /* just lookup a plain username */
index c4319d493a34a0a0cb1ec7059e5d91e4375079a0..283b2e4a89c3f07d902b89b53655fa33707dfa69 100644 (file)
@@ -786,7 +786,7 @@ int main(int argc, char **argv)
                { "foreground", 'F', POPT_ARG_VAL, &Fork, False, "Daemon in foreground mode" },
                { "interactive", 'i', POPT_ARG_NONE, NULL, 'i', "Interactive mode" },
                { "single-daemon", 'Y', POPT_ARG_VAL, &opt_dual_daemon, False, "Single daemon mode" },
-               { "no-caching", 'n', POPT_ARG_VAL, &opt_nocache, False, "Disable caching" },
+               { "no-caching", 'n', POPT_ARG_VAL, &opt_nocache, True, "Disable caching" },
                POPT_COMMON_SAMBA
                POPT_TABLEEND
        };
index 74ede8621bb7e4721ef67638b129b7157eac98c5..3bdf83cfdf7e0b55fe8f15a7fd217e359407e5aa 100644 (file)
@@ -25,6 +25,8 @@
 #include "includes.h"
 #include "winbindd.h"
 
+extern BOOL opt_nocache;
+
 #undef DBGC_CLASS
 #define DBGC_CLASS DBGC_WINBIND
 
@@ -1028,7 +1030,7 @@ enum winbindd_result winbindd_getgroups(struct winbindd_cli_state *state)
        /* Treat the info3 cache as authoritative as the
           lookup_usergroups() function may return cached data. */
 
-       if ((info3 = netsamlogon_cache_get(mem_ctx, &user_sid))) {
+       if ( !opt_nocache && (info3 = netsamlogon_cache_get(mem_ctx, &user_sid))) {
 
                DEBUG(10, ("winbindd_getgroups: info3 has %d groups, %d other sids\n",
                           info3->num_groups2, info3->num_other_sids));