summaryrefslogtreecommitdiffstats
path: root/source/rpc_parse
diff options
context:
space:
mode:
authorGerald Carter <jerry@samba.org>2007-01-19 14:33:36 +0000
committerGerald Carter <jerry@samba.org>2007-01-19 14:33:36 +0000
commit488f914d2e257e880298bd8890fed9b5b533026e (patch)
treee40b49fcf16f47ee847cb32f6a315b4c57911a32 /source/rpc_parse
parent233c0ac6489a192819a0207f73e25081b45e150d (diff)
downloadsamba-488f914d2e257e880298bd8890fed9b5b533026e.tar.gz
samba-488f914d2e257e880298bd8890fed9b5b533026e.tar.xz
samba-488f914d2e257e880298bd8890fed9b5b533026e.zip
r20904: 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.
Diffstat (limited to 'source/rpc_parse')
-rw-r--r--source/rpc_parse/parse_samr.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/source/rpc_parse/parse_samr.c b/source/rpc_parse/parse_samr.c
index 2781ad0fb96..2fab2c41379 100644
--- a/source/rpc_parse/parse_samr.c
+++ b/source/rpc_parse/parse_samr.c
@@ -7710,6 +7710,14 @@ BOOL samr_io_r_chgpasswd_user3(const char *desc, SAMR_R_CHGPASSWD_USER3 *r_u,
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))