TNG works with Win2k, fails with Win98

Luke Kenneth Casson Leighton lkcl at samba.org
Mon Feb 21 20:24:32 GMT 2000


ok.  ok.  i buy that.  yeah.

On 21 Feb 2000, Patrick J. LoPresti wrote:

> Luke Kenneth Casson Leighton <lkcl at samba.org> writes:
> 
> > > Second, my netlogon script is not running for Win98 nor for Win2k (is
> > > it even supposed to for the latter?).
> > 
> > *ah*.  that.  see, we have a real problem, there.  netlogin scripts
> > were added as a hack to the nt domain code.
> > 
> > hmmm...  let me take a look-see
> 
> I think I found the bug.  In sampass.c:getsamfile21pwent(), you are
> checking a bunch of char *'s in the "user" structure against NULL to
> see if you need to fill them in.  The problem is that they aren't
> NULL, they are just empty; so things like the logon_script field end
> up empty instead of acquiring their proper values from the smb.conf
> file.
> 
> When I fixed this, my logon scripts started working again.
> 
> My patch is appended; rewrite it as you see fit...
> 
>  - Pat
> 
> 

<a href=" mailto:lkcl at samba.org" > Luke Kenneth Casson Leighton    </a>
<a href=" http://cb1.com/~lkcl"  > Samba and Network Development   </a>
<a href=" http://samba.org"      > Samba Web site                  </a>
<a href=" http://www.iss.net"    > Internet Security Systems, Inc. </a>
<a href=" http://mcp.com"        > Macmillan Technical Publishing  </a>
 
ISBN1578701503 DCE/RPC over SMB: Samba and Windows NT Domain Internals
-------------- next part --------------
Index: passdb/sampass.c
===================================================================
RCS file: /cvsroot/samba/source/passdb/Attic/sampass.c,v
retrieving revision 1.5.2.5
diff -u -r1.5.2.5 sampass.c
--- sampass.c	2000/02/08 04:25:55	1.5.2.5
+++ sampass.c	2000/02/21 19:48:11
@@ -63,6 +63,11 @@
 	return setsmbpwpos(vp, tok);
 }
 
+static BOOL string_empty (const char *str)
+{
+  return str == NULL || *str == '\0';
+}
+
 /*************************************************************************
  Routine to return the next entry in the smbpasswd list.
  this function is a nice, messy combination of reading:
@@ -109,19 +114,19 @@
 	   didn't filled the values
 	*/ 
 
-	if (user->full_name == NULL)
+	if (string_empty (user->full_name))
 		user->full_name    = full_name;
-	if (user->home_dir == NULL)
+	if (string_empty (user->home_dir))
 		user->home_dir     = home_dir;
-	if (user->dir_drive == NULL)
+	if (string_empty (user->dir_drive))
 		user->dir_drive    = home_drive;
-	if (user->logon_script == NULL)
+	if (string_empty (user->logon_script))
 		user->logon_script = logon_script;
-	if (user->profile_path == NULL)
+	if (string_empty (user->profile_path))
 		user->profile_path = profile_path;
-	if (user->acct_desc == NULL)
+	if (string_empty (user->acct_desc))
 		user->acct_desc    = acct_desc;
-	if (user->workstations == NULL)
+	if (string_empty (user->workstations))
 		user->workstations = workstations;
 
 	user->unknown_str = NULL; /* don't know, yet! */


More information about the samba-ntdom mailing list