Andrew Bartlett wrote:
> 
> Volker Lendecke wrote:
> >
> > On Fri, Sep 27, 2002 at 07:56:20PM -0400, [EMAIL PROTECTED] wrote:
> > > Back our volker's patch as was breaking the build.
> >
> > Sorry for breaking it. On my machine it compiled well
> 
> Not as actually commited - you had an undeclared variable in there.
> 
> >, I even tested against
> > smbclient, NT4 and W2k. At least on Linux with shadow passwords you do not get
> > the password salt from /etc/passwd but from /etc/shadow. On my machine an 'x'
> > ended up in the salt, which was definitely not what crypt wanted to see.
> >
> > What kind of fix do you propose? Changing to a default of encrypted passwords
> > should IMHO not mean we do not support plaintext at all anymore.
> 
> I don't mind fixing it - I was mainly worried about the compile
> failure.  Things that don't compile don't ususally look tested ;-)
> 
> I also just want to look over it carefully, as much for my own benifit
> in understanding this crazy stuff.

How is this for a better patch?

Andrew Bartlett

-- 
Andrew Bartlett                                 [EMAIL PROTECTED]
Manager, Authentication Subsystems, Samba Team  [EMAIL PROTECTED]
Student Network Administrator, Hawker College   [EMAIL PROTECTED]
http://samba.org     http://build.samba.org     http://hawkerc.net
? auth/auth_ntlmssp.c
Index: auth/pass_check.c
===================================================================
RCS file: /data/cvs/samba/source/auth/pass_check.c,v
retrieving revision 1.34
diff -u -r1.34 pass_check.c
--- auth/pass_check.c   27 Sep 2002 23:56:20 -0000      1.34
+++ auth/pass_check.c   28 Sep 2002 12:48:37 -0000
@@ -634,6 +634,7 @@
        /* Also the place to keep the 'password' no matter what
           crazy struct it started in... */
        fstrcpy(this_crypted, pass->pw_passwd);
+       fstrcpy(this_salt, pass->pw_passwd);
 
 #ifdef HAVE_GETSPNAM
        {
@@ -645,8 +646,10 @@
                   perhaps for IPC password changing requests */
 
                spass = getspnam(pass->pw_name);
-               if (spass && spass->sp_pwdp)
+               if (spass && spass->sp_pwdp) {
                        fstrcpy(this_crypted, spass->sp_pwdp);
+                       fstrcpy(this_salt, spass->sp_pwdp);
+               }
        }
 #elif defined(IA_UINFO)
        {
@@ -703,9 +706,6 @@
                }
        }
 #endif
-
-       /* extract relevant info */
-       fstrcpy(this_salt, pass->pw_passwd);
 
 #if defined(HAVE_TRUNCATED_SALT)
        /* crypt on some platforms (HPUX in particular)

Reply via email to