svn commit: samba r20904 - in branches: SAMBA_3_0/source/rpc_parse SAMBA_3_0_24/source/rpc_parse

jerry at samba.org jerry at samba.org
Fri Jan 19 14:33:37 GMT 2007


Author: jerry
Date: 2007-01-19 14:33:36 +0000 (Fri, 19 Jan 2007)
New Revision: 20904

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=20904

Log:
This is a placeholder fix.   Apparently Windows 2000
is sharing the IDL for the SAMR pipe with Windows 2003
but returning NT_STATUS_NOT_SUPPORTED rather than a DCE/RCE
fault.  We need to catch this in the general sense
by looking at the returned PDU size.  But this immediate
change fixes password changes via pam_winbind against Windows 2000
DCs.
 

Modified:
   branches/SAMBA_3_0/source/rpc_parse/parse_samr.c
   branches/SAMBA_3_0_24/source/rpc_parse/parse_samr.c


Changeset:
Modified: branches/SAMBA_3_0/source/rpc_parse/parse_samr.c
===================================================================
--- branches/SAMBA_3_0/source/rpc_parse/parse_samr.c	2007-01-19 14:29:42 UTC (rev 20903)
+++ branches/SAMBA_3_0/source/rpc_parse/parse_samr.c	2007-01-19 14:33:36 UTC (rev 20904)
@@ -6,7 +6,7 @@
  *  Copyright (C) Paul Ashton                  1997-2000,
  *  Copyright (C) Elrond                            2000,
  *  Copyright (C) Jeremy Allison                    2001,
- *  Copyright (C) Jean François Micouleau      1998-2001,
+ *  Copyright (C) Jean François Micouleau      1998-2001,
  *  Copyright (C) Jim McDonough <jmcd at us.ibm.com>   2002.
  *  
  *  This program is free software; you can redistribute it and/or modify
@@ -7780,6 +7780,14 @@
 	if (!prs_uint32("ptr_info", ps, depth, &r_u->ptr_info))
 		return False;
 
+	/* special case: Windows 2000 can return stub data here saying
+	   NT_STATUS_NOT_SUPPORTED */
+
+	if ( NT_STATUS_EQUAL( NT_STATUS_NOT_SUPPORTED, NT_STATUS(r_u->ptr_info)) ) {
+		r_u->status = NT_STATUS_NOT_SUPPORTED;
+		return True;
+	}	
+
 	if (r_u->ptr_info && r_u->info != NULL) {
 		/* SAM_UNK_INFO_1 */
 		if (!sam_io_unk_info1("info", r_u->info, ps, depth))

Modified: branches/SAMBA_3_0_24/source/rpc_parse/parse_samr.c
===================================================================
--- branches/SAMBA_3_0_24/source/rpc_parse/parse_samr.c	2007-01-19 14:29:42 UTC (rev 20903)
+++ branches/SAMBA_3_0_24/source/rpc_parse/parse_samr.c	2007-01-19 14:33:36 UTC (rev 20904)
@@ -7710,6 +7710,14 @@
 	if (!prs_uint32("ptr_info", ps, depth, &r_u->ptr_info))
 		return False;
 
+	/* special case: Windows 2000 can return stub data here saying
+	   NT_STATUS_NOT_SUPPORTED */
+
+	if ( NT_STATUS_EQUAL( NT_STATUS_NOT_SUPPORTED, NT_STATUS(r_u->ptr_info)) ) {
+		r_u->status = NT_STATUS_NOT_SUPPORTED;
+		return True;
+	}
+
 	if (r_u->ptr_info && r_u->info != NULL) {
 		/* SAM_UNK_INFO_1 */
 		if (!sam_io_unk_info1("info", r_u->info, ps, depth))



More information about the samba-cvs mailing list