Author: jra Date: 2005-08-05 00:25:52 +0000 (Fri, 05 Aug 2005) New Revision: 9080
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=9080 Log: If we don't understand the auth, bind nak not pdu fault. Should fix usermgr on W2K3 SP1. Jeremy. Modified: branches/SAMBA_3_0/source/rpc_server/srv_pipe.c Changeset: Modified: branches/SAMBA_3_0/source/rpc_server/srv_pipe.c =================================================================== --- branches/SAMBA_3_0/source/rpc_server/srv_pipe.c 2005-08-05 00:07:08 UTC (rev 9079) +++ branches/SAMBA_3_0/source/rpc_server/srv_pipe.c 2005-08-05 00:25:52 UTC (rev 9080) @@ -666,7 +666,7 @@ if(!prs_uint16("reject code", &outgoing_rpc, 0, &zero)) { prs_mem_free(&outgoing_rpc); - return False; + return False; } p->out_data.data_sent_length = 0; @@ -896,11 +896,9 @@ if (i == rpc_lookup_size) { if (NT_STATUS_IS_ERR(smb_probe_module("rpc", p->name))) { - DEBUG(3,("api_pipe_bind_req: Unknown pipe name %s in bind request.\n", - p->name )); - if(!setup_bind_nak(p)) - return False; - return True; + DEBUG(3,("api_pipe_bind_req: Unknown pipe name %s in bind request.\n", + p->name )); + return setup_bind_nak(p); } for (i = 0; i < rpc_lookup_size; i++) { @@ -921,7 +919,7 @@ /* decode the bind request */ if(!smb_io_rpc_hdr_rb("", &hdr_rb, rpc_in_p, 0)) { DEBUG(0,("api_pipe_bind_req: unable to unmarshall RPC_HDR_RB struct.\n")); - return False; + return setup_bind_nak(p); } /* @@ -938,7 +936,7 @@ if(!smb_io_rpc_hdr_auth("", &auth_info, rpc_in_p, 0)) { DEBUG(0,("api_pipe_bind_req: unable to unmarshall RPC_HDR_AUTH struct.\n")); - return False; + return setup_bind_nak(p); } switch(auth_info.auth_type) { @@ -947,26 +945,26 @@ if(!smb_io_rpc_auth_verifier("", &auth_verifier, rpc_in_p, 0)) { DEBUG(0,("api_pipe_bind_req: unable to " "unmarshall RPC_HDR_AUTH struct.\n")); - return False; + return setup_bind_nak(p); } if(!strequal(auth_verifier.signature, "NTLMSSP")) { DEBUG(0,("api_pipe_bind_req: " "auth_verifier.signature != NTLMSSP\n")); - return False; + return setup_bind_nak(p); } if(auth_verifier.msg_type != NTLMSSP_NEGOTIATE) { DEBUG(0,("api_pipe_bind_req: " "auth_verifier.msg_type (%d) != NTLMSSP_NEGOTIATE\n", auth_verifier.msg_type)); - return False; + return setup_bind_nak(p); } if(!smb_io_rpc_auth_ntlmssp_neg("", &ntlmssp_neg, rpc_in_p, 0)) { DEBUG(0,("api_pipe_bind_req: " "Failed to unmarshall RPC_AUTH_NTLMSSP_NEG.\n")); - return False; + return setup_bind_nak(p); } p->ntlmssp_chal_flags = SMBD_NTLMSSP_NEG_FLAGS; @@ -981,13 +979,13 @@ if (!server_auth2_negotiated) { DEBUG(0, ("Attempt to bind using schannel " "without successful serverauth2\n")); - return False; + return setup_bind_nak(p); } if (!smb_io_rpc_auth_netsec_neg("", &neg, rpc_in_p, 0)) { DEBUG(0,("api_pipe_bind_req: " "Could not unmarshal SCHANNEL auth neg\n")); - return False; + return setup_bind_nak(p); } p->netsec_auth_validated = True; @@ -1006,7 +1004,7 @@ default: DEBUG(0,("api_pipe_bind_req: unknown auth type %x requested.\n", auth_info.auth_type )); - return False; + return setup_bind_nak(p); } }
