mirror of
https://github.com/samba-team/samba.git
synced 2025-02-23 09:57:40 +03:00
Tidyup removing many of the 0xC0000000 | NT_STATUS_XXX stuff (only need NT_STATUS_XXX).
Removed IS_BITS_xxx macros as they were just reproducing "C" syntax in a more obscure way. Jeremy. (This used to be commit c55bcec817f47d6162466b193d533c877194124a)
This commit is contained in:
parent
d95777ac34
commit
7f36df301e
@ -30,11 +30,6 @@
|
||||
#define BITSETB(ptr,bit) ((((char *)ptr)[0] & (1<<(bit)))!=0)
|
||||
#define BITSETW(ptr,bit) ((SVAL(ptr,0) & (1<<(bit)))!=0)
|
||||
|
||||
#define IS_BITS_SET_ALL(var,bit) (((var)&(bit))==(bit))
|
||||
#define IS_BITS_SET_SOME(var,bit) (((var)&(bit))!=0)
|
||||
#define IS_BITS_CLR_ALL(var,bit) (((var)&(bit))==0)
|
||||
#define IS_BITS_CLR_SOME(var,bit) (((var)&(bit))!=(bit))
|
||||
|
||||
/* for readability... */
|
||||
#define IS_DOS_READONLY(test_mode) (((test_mode) & aRONLY) != 0)
|
||||
#define IS_DOS_DIR(test_mode) (((test_mode) & aDIR) != 0)
|
||||
|
@ -1091,8 +1091,7 @@ static uint32 cmd_set(struct client_info *info, int argc, char *argv[])
|
||||
}
|
||||
}
|
||||
|
||||
if (IS_BITS_SET_ALL(cmd_set_options, CMD_INTER))
|
||||
{
|
||||
if (cmd_set_options & CMD_INTER) {
|
||||
setup_logging(debugf, interactive);
|
||||
if (!interactive)
|
||||
reopen_logs();
|
||||
@ -1101,8 +1100,7 @@ static uint32 cmd_set(struct client_info *info, int argc, char *argv[])
|
||||
strupper(global_myname);
|
||||
fstrcpy(cli_info.myhostname, global_myname);
|
||||
|
||||
if (IS_BITS_SET_ALL(cmd_set_options, CMD_SVC))
|
||||
{
|
||||
if (cmd_set_options & CMD_SVC) {
|
||||
if (!lp_load(servicesf, True, False, False))
|
||||
{
|
||||
fprintf(stderr,
|
||||
@ -1112,26 +1110,23 @@ static uint32 cmd_set(struct client_info *info, int argc, char *argv[])
|
||||
|
||||
}
|
||||
|
||||
if (IS_BITS_SET_ALL(cmd_set_options, CMD_INTER))
|
||||
{
|
||||
if (cmd_set_options & CMD_INTER) {
|
||||
load_interfaces();
|
||||
}
|
||||
|
||||
DEBUG(10, ("cmd_set: options: %x\n", cmd_set_options));
|
||||
|
||||
if (IS_BITS_SET_ALL(cmd_set_options, CMD_HELP))
|
||||
{
|
||||
if (cmd_set_options & CMD_HELP) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (IS_BITS_SET_ALL(cmd_set_options, CMD_NOPW))
|
||||
{
|
||||
if (cmd_set_options & CMD_NOPW) {
|
||||
set_user_password(&usr.ntc, True, NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
set_user_password(&usr.ntc,
|
||||
IS_BITS_SET_ALL(cmd_set_options, CMD_PASS),
|
||||
((cmd_set_options & CMD_PASS) != 0),
|
||||
password);
|
||||
}
|
||||
|
||||
@ -1310,8 +1305,7 @@ int command_main(int argc, char *argv[])
|
||||
|
||||
status = cmd_set(&cli_info, argc, argv);
|
||||
|
||||
if (IS_BITS_SET_SOME(cmd_set_options, CMD_HELP|CMD_STR))
|
||||
{
|
||||
if (cmd_set_options & (CMD_HELP|CMD_STR)) {
|
||||
free_connections();
|
||||
get_safe_nt_error_msg(status, msg, sizeof(msg));
|
||||
|
||||
|
@ -161,7 +161,8 @@ int cli_error(struct cli_state *cli, uint8 *eclass, uint32 *num, uint32 *nt_rpc_
|
||||
uint32 nt_err = IVAL(cli->inbuf,smb_rcls);
|
||||
if (num) *num = nt_err;
|
||||
DEBUG(10,("cli_error: 32 bit codes: code=%08x\n", nt_err));
|
||||
if (!IS_BITS_SET_ALL(nt_err, 0xc0000000)) return 0;
|
||||
if (!(nt_err & 0xc0000000))
|
||||
return 0;
|
||||
|
||||
switch (nt_err) {
|
||||
case NT_STATUS_ACCESS_VIOLATION: return EACCES;
|
||||
|
@ -148,10 +148,10 @@ static void cli_issue_write(struct cli_state *cli, int fnum, off_t offset, uint1
|
||||
SSVAL(cli->outbuf,smb_vwv2,fnum);
|
||||
|
||||
SIVAL(cli->outbuf,smb_vwv3,offset);
|
||||
SIVAL(cli->outbuf,smb_vwv5,IS_BITS_SET_ALL(mode, 0x0008) ? 0xFFFFFFFF : 0);
|
||||
SIVAL(cli->outbuf,smb_vwv5,(mode & 0x0008) ? 0xFFFFFFFF : 0);
|
||||
SSVAL(cli->outbuf,smb_vwv7,mode);
|
||||
|
||||
SSVAL(cli->outbuf,smb_vwv8,IS_BITS_SET_ALL(mode, 0x0008) ? size : 0);
|
||||
SSVAL(cli->outbuf,smb_vwv8,(mode & 0x0008) ? size : 0);
|
||||
SSVAL(cli->outbuf,smb_vwv10,size);
|
||||
SSVAL(cli->outbuf,smb_vwv11,
|
||||
smb_buf(cli->outbuf) - smb_base(cli->outbuf));
|
||||
|
@ -703,24 +703,15 @@ void pdb_set_last_set_time(char *p, int max_len, time_t t)
|
||||
**************************************************************/
|
||||
void pdb_sethexpwd(char *p, unsigned char *pwd, uint16 acct_ctrl)
|
||||
{
|
||||
if (pwd != NULL)
|
||||
{
|
||||
if (pwd != NULL) {
|
||||
int i;
|
||||
for (i = 0; i < 16; i++)
|
||||
{
|
||||
slprintf(&p[i*2], 3, "%02X", pwd[i]);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (IS_BITS_SET_ALL(acct_ctrl, ACB_PWNOTREQ))
|
||||
{
|
||||
} else {
|
||||
if (acct_ctrl & ACB_PWNOTREQ)
|
||||
safe_strcpy(p, "NO PASSWORDXXXXXXXXXXXXXXXXXXXXX", 33);
|
||||
}
|
||||
else
|
||||
{
|
||||
safe_strcpy(p, "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 33);
|
||||
}
|
||||
}
|
||||
}
|
||||
/*************************************************************
|
||||
|
@ -124,8 +124,8 @@ static BOOL rpc_check_hdr(prs_struct *rdata, RPC_HDR *rhdr,
|
||||
return False;
|
||||
}
|
||||
|
||||
(*first) = IS_BITS_SET_ALL(rhdr->flags, RPC_FLG_FIRST);
|
||||
(*last) = IS_BITS_SET_ALL(rhdr->flags, RPC_FLG_LAST );
|
||||
(*first) = ((rhdr->flags & RPC_FLG_FIRST) != 0);
|
||||
(*last) = ((rhdr->flags & RPC_FLG_LAST ) != 0);
|
||||
(*len) = (uint32)rhdr->frag_len - prs_data_size(rdata);
|
||||
|
||||
return (rhdr->pkt_type != RPC_FAULT);
|
||||
@ -188,8 +188,8 @@ static BOOL rpc_auth_pipe(struct cli_state *cli, prs_struct *rdata, int len, int
|
||||
*/
|
||||
char *reply_data = prs_data_p(rdata) + RPC_HEADER_LEN + RPC_HDR_REQ_LEN;
|
||||
|
||||
BOOL auth_verify = IS_BITS_SET_ALL(cli->ntlmssp_srv_flgs, NTLMSSP_NEGOTIATE_SIGN);
|
||||
BOOL auth_seal = IS_BITS_SET_ALL(cli->ntlmssp_srv_flgs, NTLMSSP_NEGOTIATE_SEAL);
|
||||
BOOL auth_verify = ((cli->ntlmssp_srv_flgs & NTLMSSP_NEGOTIATE_SIGN) != 0);
|
||||
BOOL auth_seal = ((cli->ntlmssp_srv_flgs & NTLMSSP_NEGOTIATE_SEAL) != 0);
|
||||
|
||||
DEBUG(5,("rpc_auth_pipe: len: %d auth_len: %d verify %s seal %s\n",
|
||||
len, auth_len, BOOLSTR(auth_verify), BOOLSTR(auth_seal)));
|
||||
@ -756,8 +756,8 @@ BOOL rpc_api_pipe_req(struct cli_state *cli, uint8 op_num,
|
||||
uint32 crc32 = 0;
|
||||
char *pdata_out = NULL;
|
||||
|
||||
auth_verify = IS_BITS_SET_ALL(cli->ntlmssp_srv_flgs, NTLMSSP_NEGOTIATE_SIGN);
|
||||
auth_seal = IS_BITS_SET_ALL(cli->ntlmssp_srv_flgs, NTLMSSP_NEGOTIATE_SEAL);
|
||||
auth_verify = ((cli->ntlmssp_srv_flgs & NTLMSSP_NEGOTIATE_SIGN) != 0);
|
||||
auth_seal = ((cli->ntlmssp_srv_flgs & NTLMSSP_NEGOTIATE_SEAL) != 0);
|
||||
|
||||
/*
|
||||
* The auth_len doesn't include the RPC_HDR_AUTH_LEN.
|
||||
@ -1168,7 +1168,7 @@ BOOL cli_nt_session_open(struct cli_state *cli, char *pipe_name)
|
||||
{
|
||||
int fnum;
|
||||
|
||||
if (IS_BITS_SET_ALL(cli->capabilities, CAP_NT_SMBS)) {
|
||||
if (cli->capabilities & CAP_NT_SMBS) {
|
||||
if ((fnum = cli_nt_create(cli, &(pipe_name[5]))) == -1) {
|
||||
DEBUG(0,("cli_nt_session_open: cli_nt_create failed on pipe %s to machine %s. Error was %s\n",
|
||||
&(pipe_name[5]), cli->desthost, cli_errstr(cli)));
|
||||
|
@ -843,8 +843,7 @@ void init_rpc_auth_ntlmssp_resp(RPC_AUTH_NTLMSSP_RESP *rsp,
|
||||
|
||||
offset = 0x40;
|
||||
|
||||
if (IS_BITS_SET_ALL(neg_flags, NTLMSSP_NEGOTIATE_UNICODE))
|
||||
{
|
||||
if (neg_flags & NTLMSSP_NEGOTIATE_UNICODE) {
|
||||
dom_len *= 2;
|
||||
wks_len *= 2;
|
||||
usr_len *= 2;
|
||||
@ -872,7 +871,7 @@ void init_rpc_auth_ntlmssp_resp(RPC_AUTH_NTLMSSP_RESP *rsp,
|
||||
memcpy(rsp->lm_resp, lm_resp, 24);
|
||||
memcpy(rsp->nt_resp, nt_resp, 24);
|
||||
|
||||
if (IS_BITS_SET_ALL(neg_flags, NTLMSSP_NEGOTIATE_UNICODE)) {
|
||||
if (neg_flags & NTLMSSP_NEGOTIATE_UNICODE) {
|
||||
dos_struni2(rsp->domain, domain, sizeof(rsp->domain));
|
||||
dos_struni2(rsp->user, user, sizeof(rsp->user));
|
||||
dos_struni2(rsp->wks, wks, sizeof(rsp->wks));
|
||||
|
@ -1365,7 +1365,7 @@ void init_sam_info_2(SAM_INFO_2 *sam, uint32 acb_mask,
|
||||
}
|
||||
|
||||
for (i = start_idx, entries_added = 0; i < num_sam_entries; i++) {
|
||||
if (IS_BITS_SET_ALL(pass[i].acb_info, acb_mask)) {
|
||||
if ((pass[i].acb_info & acb_mask) == acb_mask) {
|
||||
init_sam_entry2(&sam->sam[entries_added],
|
||||
start_idx + entries_added + 1,
|
||||
pass[i].uni_user_name.uni_str_len,
|
||||
@ -1451,7 +1451,7 @@ void init_sam_info_1(SAM_INFO_1 *sam, uint32 acb_mask,
|
||||
|
||||
for (i = 0, entries_added = 0;
|
||||
i < num_sam_entries; i++) {
|
||||
if (IS_BITS_SET_ALL(pass[i].acb_info, acb_mask)) {
|
||||
if ((pass[i].acb_info & acb_mask) == acb_mask) {
|
||||
init_sam_entry1(&sam->sam[entries_added],
|
||||
start_idx + entries_added + 1,
|
||||
pass[i].uni_user_name.uni_str_len,
|
||||
|
@ -510,7 +510,7 @@ BOOL sec_io_desc(char *desc, SEC_DESC **ppsd, prs_struct *ps, int depth)
|
||||
|
||||
max_offset = MAX(max_offset, prs_offset(ps));
|
||||
|
||||
if (IS_BITS_SET_ALL(psd->type, SEC_DESC_SACL_PRESENT) && psd->off_sacl) {
|
||||
if ((psd->type & SEC_DESC_SACL_PRESENT) && psd->off_sacl) {
|
||||
if(!prs_set_offset(ps, old_offset + psd->off_sacl))
|
||||
return False;
|
||||
if(!sec_io_acl("sacl", &psd->sacl, ps, depth))
|
||||
@ -521,7 +521,7 @@ BOOL sec_io_desc(char *desc, SEC_DESC **ppsd, prs_struct *ps, int depth)
|
||||
|
||||
max_offset = MAX(max_offset, prs_offset(ps));
|
||||
|
||||
if (IS_BITS_SET_ALL(psd->type, SEC_DESC_DACL_PRESENT) && psd->off_dacl != 0) {
|
||||
if ((psd->type & SEC_DESC_DACL_PRESENT) && psd->off_dacl != 0) {
|
||||
if(!prs_set_offset(ps, old_offset + psd->off_dacl))
|
||||
return False;
|
||||
if(!sec_io_acl("dacl", &psd->dacl, ps, depth))
|
||||
|
@ -173,10 +173,10 @@ static BOOL smb_io_doc_info_container(char *desc, DOC_INFO_CONTAINER *cont, prs_
|
||||
if(!prs_align(ps))
|
||||
return False;
|
||||
|
||||
if(!prs_uint32("level", ps, depth, &(cont->level)))
|
||||
if(!prs_uint32("level", ps, depth, &cont->level))
|
||||
return False;
|
||||
|
||||
if(!smb_io_doc_info("",&(cont->docinfo), ps, depth))
|
||||
if(!smb_io_doc_info("",&cont->docinfo, ps, depth))
|
||||
return False;
|
||||
|
||||
return True;
|
||||
@ -234,7 +234,7 @@ static BOOL smb_io_notify_option_type_data(char *desc, SPOOL_NOTIFY_OPTION_TYPE
|
||||
|
||||
/* parse the option type data */
|
||||
for(i=0;i<type->count2;i++)
|
||||
if(!prs_uint16("fields",ps,depth,&(type->fields[i])))
|
||||
if(!prs_uint16("fields",ps,depth,&type->fields[i]))
|
||||
return False;
|
||||
return True;
|
||||
}
|
||||
|
@ -354,7 +354,7 @@ static BOOL api_net_req_chal(pipes_struct *p)
|
||||
(char *)vuser->dc.md4pw, vuser->dc.sess_key);
|
||||
} else {
|
||||
/* lkclXXXX take a guess at a good error message to return :-) */
|
||||
status = 0xC0000000 | NT_STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT;
|
||||
status = NT_STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT;
|
||||
}
|
||||
|
||||
/* construct reply. */
|
||||
@ -370,7 +370,7 @@ static BOOL api_net_req_chal(pipes_struct *p)
|
||||
|
||||
static BOOL api_net_auth_2(pipes_struct *p)
|
||||
{
|
||||
uint16 vuid = p->vuid;
|
||||
uint16 vuid = p->vuid;
|
||||
NET_Q_AUTH_2 q_a;
|
||||
uint32 status = 0x0;
|
||||
prs_struct *data = &p->in_data.data;
|
||||
@ -403,7 +403,7 @@ static BOOL api_net_auth_2(pipes_struct *p)
|
||||
memcpy(vuser->dc.clnt_cred.challenge.data, q_a.clnt_chal.data, sizeof(q_a.clnt_chal.data));
|
||||
memcpy(vuser->dc.srv_cred .challenge.data, q_a.clnt_chal.data, sizeof(q_a.clnt_chal.data));
|
||||
} else {
|
||||
status = NT_STATUS_ACCESS_DENIED | 0xC0000000;
|
||||
status = NT_STATUS_ACCESS_DENIED;
|
||||
}
|
||||
|
||||
/* construct reply. */
|
||||
@ -420,9 +420,9 @@ static BOOL api_net_auth_2(pipes_struct *p)
|
||||
|
||||
static BOOL api_net_srv_pwset(pipes_struct *p)
|
||||
{
|
||||
uint16 vuid = p->vuid;
|
||||
uint16 vuid = p->vuid;
|
||||
NET_Q_SRV_PWSET q_a;
|
||||
uint32 status = NT_STATUS_WRONG_PASSWORD|0xC0000000;
|
||||
uint32 status = NT_STATUS_WRONG_PASSWORD;
|
||||
DOM_CRED srv_cred;
|
||||
pstring mach_acct;
|
||||
struct smb_passwd *smb_pass;
|
||||
@ -487,7 +487,7 @@ static BOOL api_net_srv_pwset(pipes_struct *p)
|
||||
|
||||
} else {
|
||||
/* lkclXXXX take a guess at a sensible error code to return... */
|
||||
status = 0xC0000000 | NT_STATUS_NETWORK_CREDENTIAL_CONFLICT;
|
||||
status = NT_STATUS_NETWORK_CREDENTIAL_CONFLICT;
|
||||
}
|
||||
|
||||
/* Construct reply. */
|
||||
@ -582,7 +582,7 @@ static uint32 net_login_interactive(NET_ID_INFO_1 *id1, struct smb_passwd *smb_p
|
||||
if (memcmp(smb_pass->smb_passwd , lm_pwd, 16) != 0 ||
|
||||
memcmp(smb_pass->smb_nt_passwd, nt_pwd, 16) != 0)
|
||||
{
|
||||
status = 0xC0000000 | NT_STATUS_WRONG_PASSWORD;
|
||||
status = NT_STATUS_WRONG_PASSWORD;
|
||||
}
|
||||
|
||||
return status;
|
||||
@ -609,7 +609,7 @@ static uint32 net_login_network(NET_ID_INFO_2 *id2, struct smb_passwd *smb_pass)
|
||||
id2->lm_chal))
|
||||
return 0x0;
|
||||
else
|
||||
return 0xC0000000 | NT_STATUS_WRONG_PASSWORD;
|
||||
return NT_STATUS_WRONG_PASSWORD;
|
||||
}
|
||||
|
||||
/* lkclXXXX this is not a good place to put disabling of LM hashes in.
|
||||
@ -631,7 +631,7 @@ static uint32 net_login_network(NET_ID_INFO_2 *id2, struct smb_passwd *smb_pass)
|
||||
|
||||
/* oops! neither password check succeeded */
|
||||
|
||||
return 0xC0000000 | NT_STATUS_WRONG_PASSWORD;
|
||||
return NT_STATUS_WRONG_PASSWORD;
|
||||
}
|
||||
|
||||
/*************************************************************************
|
||||
@ -673,7 +673,7 @@ static BOOL api_net_sam_logon(pipes_struct *p)
|
||||
/* checks and updates credentials. creates reply credentials */
|
||||
if (!deal_with_creds(vuser->dc.sess_key, &(vuser->dc.clnt_cred),
|
||||
&(q_l.sam_id.client.cred), &srv_cred))
|
||||
status = 0xC0000000 | NT_STATUS_INVALID_HANDLE;
|
||||
status = NT_STATUS_INVALID_HANDLE;
|
||||
else
|
||||
memcpy(&(vuser->dc.srv_cred), &(vuser->dc.clnt_cred),
|
||||
sizeof(vuser->dc.clnt_cred));
|
||||
@ -695,7 +695,7 @@ static BOOL api_net_sam_logon(pipes_struct *p)
|
||||
break;
|
||||
default:
|
||||
DEBUG(2,("SAM Logon: unsupported switch value\n"));
|
||||
status = 0xC0000000 | NT_STATUS_INVALID_INFO_CLASS;
|
||||
status = NT_STATUS_INVALID_INFO_CLASS;
|
||||
break;
|
||||
} /* end switch */
|
||||
} /* end if status == 0 */
|
||||
@ -723,11 +723,11 @@ static BOOL api_net_sam_logon(pipes_struct *p)
|
||||
unbecome_root();
|
||||
|
||||
if (smb_pass == NULL)
|
||||
status = 0xC0000000 | NT_STATUS_NO_SUCH_USER;
|
||||
status = NT_STATUS_NO_SUCH_USER;
|
||||
else if (smb_pass->acct_ctrl & ACB_PWNOTREQ)
|
||||
status = 0;
|
||||
else if (smb_pass->acct_ctrl & ACB_DISABLED)
|
||||
status = 0xC0000000 | NT_STATUS_ACCOUNT_DISABLED;
|
||||
status = NT_STATUS_ACCOUNT_DISABLED;
|
||||
}
|
||||
|
||||
/* Validate password - if required. */
|
||||
@ -851,7 +851,7 @@ static BOOL api_net_sam_logon(pipes_struct *p)
|
||||
&global_sam_sid, /* DOM_SID *dom_sid */
|
||||
NULL); /* char *other_sids */
|
||||
else
|
||||
status = 0xC0000000 | NT_STATUS_NO_SUCH_USER;
|
||||
status = NT_STATUS_NO_SUCH_USER;
|
||||
|
||||
/* Free any allocated groups array. */
|
||||
if(gids)
|
||||
|
@ -78,8 +78,8 @@ static void NTLMSSPcalc_p( pipes_struct *p, unsigned char *data, int len)
|
||||
BOOL create_next_pdu(pipes_struct *p)
|
||||
{
|
||||
RPC_HDR_RESP hdr_resp;
|
||||
BOOL auth_verify = IS_BITS_SET_ALL(p->ntlmssp_chal_flags, NTLMSSP_NEGOTIATE_SIGN);
|
||||
BOOL auth_seal = IS_BITS_SET_ALL(p->ntlmssp_chal_flags, NTLMSSP_NEGOTIATE_SEAL);
|
||||
BOOL auth_verify = ((p->ntlmssp_chal_flags & NTLMSSP_NEGOTIATE_SIGN) != 0);
|
||||
BOOL auth_seal = ((p->ntlmssp_chal_flags & NTLMSSP_NEGOTIATE_SEAL) != 0);
|
||||
uint32 data_len;
|
||||
uint32 data_space_available;
|
||||
uint32 data_len_left;
|
||||
@ -292,7 +292,7 @@ static BOOL api_pipe_ntlmssp_verify(pipes_struct *p, RPC_AUTH_NTLMSSP_RESP *ntlm
|
||||
* We always negotiate UNICODE.
|
||||
*/
|
||||
|
||||
if (IS_BITS_SET_ALL(p->ntlmssp_chal_flags, NTLMSSP_NEGOTIATE_UNICODE)) {
|
||||
if (p->ntlmssp_chal_flags & NTLMSSP_NEGOTIATE_UNICODE) {
|
||||
fstrcpy(user_name, dos_unistrn2((uint16*)ntlmssp_resp->user, ntlmssp_resp->hdr_usr.str_str_len/2));
|
||||
fstrcpy(domain, dos_unistrn2((uint16*)ntlmssp_resp->domain, ntlmssp_resp->hdr_domain.str_str_len/2));
|
||||
fstrcpy(wks, dos_unistrn2((uint16*)ntlmssp_resp->wks, ntlmssp_resp->hdr_wks.str_str_len/2));
|
||||
@ -1014,8 +1014,8 @@ BOOL api_pipe_auth_process(pipes_struct *p, prs_struct *rpc_in)
|
||||
/*
|
||||
* We always negotiate the following two bits....
|
||||
*/
|
||||
BOOL auth_verify = IS_BITS_SET_ALL(p->ntlmssp_chal_flags, NTLMSSP_NEGOTIATE_SIGN);
|
||||
BOOL auth_seal = IS_BITS_SET_ALL(p->ntlmssp_chal_flags, NTLMSSP_NEGOTIATE_SEAL);
|
||||
BOOL auth_verify = ((p->ntlmssp_chal_flags & NTLMSSP_NEGOTIATE_SIGN) != 0);
|
||||
BOOL auth_seal = ((p->ntlmssp_chal_flags & NTLMSSP_NEGOTIATE_SEAL) != 0);
|
||||
int data_len;
|
||||
int auth_len;
|
||||
uint32 old_offset;
|
||||
|
@ -213,17 +213,6 @@ pipes_struct *open_rpc_pipe_p(char *pipe_name,
|
||||
|
||||
fstrcpy(p->name, pipe_name);
|
||||
|
||||
#if 0
|
||||
|
||||
Comment out until memory leak fixed. JRA.
|
||||
|
||||
/*
|
||||
* For Luke - attempt to connect to RPC redirect process.
|
||||
*/
|
||||
|
||||
attempt_remote_rpc_connect(p);
|
||||
#endif
|
||||
|
||||
DEBUG(4,("Opened pipe %s with handle %x (pipes_open=%d)\n",
|
||||
pipe_name, i, pipes_open));
|
||||
|
||||
@ -364,7 +353,7 @@ static ssize_t unmarshall_rpc_header(pipes_struct *p)
|
||||
|
||||
static BOOL process_request_pdu(pipes_struct *p, prs_struct *rpc_in_p)
|
||||
{
|
||||
BOOL auth_verify = IS_BITS_SET_ALL(p->ntlmssp_chal_flags, NTLMSSP_NEGOTIATE_SIGN);
|
||||
BOOL auth_verify = ((p->ntlmssp_chal_flags & NTLMSSP_NEGOTIATE_SIGN) != 0);
|
||||
size_t data_len = p->hdr.frag_len - RPC_HEADER_LEN - RPC_HDR_REQ_LEN -
|
||||
(auth_verify ? RPC_HDR_AUTH_LEN : 0) - p->hdr.auth_len;
|
||||
|
||||
|
@ -88,7 +88,7 @@ static BOOL get_sampwd_entries(SAM_USER_INFO_21 *pw_buf,
|
||||
(*num_entries), pwd->smb_name,
|
||||
pwd->user_rid, pwd->acct_ctrl));
|
||||
|
||||
if (acb_mask == 0 || IS_BITS_SET_SOME(pwd->acct_ctrl, acb_mask)) {
|
||||
if (acb_mask == 0 || (pwd->acct_ctrl & acb_mask)) {
|
||||
DEBUG(5,(" acb_mask %x accepts\n", acb_mask));
|
||||
(*num_entries)++;
|
||||
} else {
|
||||
|
@ -192,7 +192,7 @@ static void init_srv_r_net_share_enum(SRV_R_NET_SHARE_ENUM *r_n,
|
||||
&resume_hnd, &r_n->total_entries)) {
|
||||
r_n->status = 0x0;
|
||||
} else {
|
||||
r_n->status = 0xC0000000 | NT_STATUS_INVALID_INFO_CLASS;
|
||||
r_n->status = NT_STATUS_INVALID_INFO_CLASS;
|
||||
}
|
||||
|
||||
init_enum_hnd(&r_n->enum_hnd, resume_hnd);
|
||||
@ -255,11 +255,11 @@ static void init_srv_r_net_share_get_info(SRV_R_NET_SHARE_GET_INFO *r_n,
|
||||
break;
|
||||
default:
|
||||
DEBUG(5,("init_srv_net_share_get_info: unsupported switch value %d\n", info_level));
|
||||
status = 0xC0000000 | NT_STATUS_INVALID_INFO_CLASS;
|
||||
status = NT_STATUS_INVALID_INFO_CLASS;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
status = 0xC0000000 | NT_STATUS_BAD_NETWORK_NAME;
|
||||
status = NT_STATUS_BAD_NETWORK_NAME;
|
||||
}
|
||||
|
||||
r_n->ptr_share_ctr = (status == 0x0) ? 1 : 0;
|
||||
@ -462,7 +462,7 @@ static uint32 init_srv_sess_info_ctr(SRV_SESS_INFO_CTR *ctr,
|
||||
(*resume_hnd) = 0;
|
||||
(*total_entries) = 0;
|
||||
ctr->ptr_sess_ctr = 0;
|
||||
status = 0xC0000000 | NT_STATUS_INVALID_INFO_CLASS;
|
||||
status = NT_STATUS_INVALID_INFO_CLASS;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -481,7 +481,7 @@ static void init_srv_r_net_sess_enum(SRV_R_NET_SESS_ENUM *r_n,
|
||||
r_n->sess_level = sess_level;
|
||||
if (sess_level == -1)
|
||||
{
|
||||
r_n->status = 0xC0000000 | NT_STATUS_INVALID_INFO_CLASS;
|
||||
r_n->status = NT_STATUS_INVALID_INFO_CLASS;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -675,7 +675,7 @@ static uint32 init_srv_conn_info_ctr(SRV_CONN_INFO_CTR *ctr,
|
||||
(*resume_hnd = 0);
|
||||
(*total_entries) = 0;
|
||||
ctr->ptr_conn_ctr = 0;
|
||||
status = 0xC0000000 | NT_STATUS_INVALID_INFO_CLASS;
|
||||
status = NT_STATUS_INVALID_INFO_CLASS;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -694,7 +694,7 @@ static void init_srv_r_net_conn_enum(SRV_R_NET_CONN_ENUM *r_n,
|
||||
r_n->conn_level = conn_level;
|
||||
if (conn_level == -1)
|
||||
{
|
||||
r_n->status = 0xC0000000 | NT_STATUS_INVALID_INFO_CLASS;
|
||||
r_n->status = NT_STATUS_INVALID_INFO_CLASS;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -810,7 +810,7 @@ static uint32 init_srv_file_info_ctr(SRV_FILE_INFO_CTR *ctr,
|
||||
(*resume_hnd = 0);
|
||||
(*total_entries) = 0;
|
||||
ctr->ptr_file_ctr = 0;
|
||||
status = 0xC0000000 | NT_STATUS_INVALID_INFO_CLASS;
|
||||
status = NT_STATUS_INVALID_INFO_CLASS;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -829,7 +829,7 @@ static void init_srv_r_net_file_enum(SRV_R_NET_FILE_ENUM *r_n,
|
||||
r_n->file_level = file_level;
|
||||
if (file_level == 0)
|
||||
{
|
||||
r_n->status = 0xC0000000 | NT_STATUS_INVALID_INFO_CLASS;
|
||||
r_n->status = NT_STATUS_INVALID_INFO_CLASS;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -910,7 +910,7 @@ static void srv_reply_net_srv_get_info(SRV_Q_NET_SRV_GET_INFO *q_n,
|
||||
}
|
||||
default:
|
||||
{
|
||||
status = 0xC0000000 | NT_STATUS_INVALID_INFO_CLASS;
|
||||
status = NT_STATUS_INVALID_INFO_CLASS;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -216,7 +216,7 @@ uint32 lookup_group_name(uint32 rid, char *group_name, uint32 *type)
|
||||
}
|
||||
|
||||
DEBUG(5,(" none mapped\n"));
|
||||
return 0xC0000000 | NT_STATUS_NONE_MAPPED;
|
||||
return NT_STATUS_NONE_MAPPED;
|
||||
}
|
||||
|
||||
/*******************************************************************
|
||||
@ -242,7 +242,7 @@ uint32 lookup_alias_name(uint32 rid, char *alias_name, uint32 *type)
|
||||
}
|
||||
|
||||
DEBUG(5,(" none mapped\n"));
|
||||
return 0xC0000000 | NT_STATUS_NONE_MAPPED;
|
||||
return NT_STATUS_NONE_MAPPED;
|
||||
}
|
||||
|
||||
/*******************************************************************
|
||||
@ -282,7 +282,7 @@ uint32 lookup_user_name(uint32 rid, char *user_name, uint32 *type)
|
||||
}
|
||||
|
||||
DEBUG(5,(" none mapped\n"));
|
||||
return 0xC0000000 | NT_STATUS_NONE_MAPPED;
|
||||
return NT_STATUS_NONE_MAPPED;
|
||||
}
|
||||
|
||||
/*******************************************************************
|
||||
@ -301,7 +301,7 @@ uint32 lookup_group_rid(char *group_name, uint32 *rid)
|
||||
|
||||
} while (grp_name != NULL && !strequal(grp_name, group_name));
|
||||
|
||||
return (grp_name != NULL) ? 0 : 0xC0000000 | NT_STATUS_NONE_MAPPED;
|
||||
return (grp_name != NULL) ? 0 : NT_STATUS_NONE_MAPPED;
|
||||
}
|
||||
|
||||
/*******************************************************************
|
||||
@ -320,7 +320,7 @@ uint32 lookup_alias_rid(char *alias_name, uint32 *rid)
|
||||
|
||||
} while (als_name != NULL && !strequal(als_name, alias_name));
|
||||
|
||||
return (als_name != NULL) ? 0 : 0xC0000000 | NT_STATUS_NONE_MAPPED;
|
||||
return (als_name != NULL) ? 0 : NT_STATUS_NONE_MAPPED;
|
||||
}
|
||||
|
||||
/*******************************************************************
|
||||
@ -342,7 +342,7 @@ uint32 lookup_user_rid(char *user_name, uint32 *rid)
|
||||
return 0x0;
|
||||
}
|
||||
|
||||
return 0xC0000000 | NT_STATUS_NONE_MAPPED;
|
||||
return NT_STATUS_NONE_MAPPED;
|
||||
}
|
||||
|
||||
#undef OLD_NTDOMAIN
|
||||
|
@ -58,8 +58,8 @@ convert an oplock mode to a string
|
||||
char *get_file_oplock_str(uint32 op_type)
|
||||
{
|
||||
static fstring oplock;
|
||||
BOOL excl = IS_BITS_SET_ALL(op_type, EXCLUSIVE_OPLOCK);
|
||||
BOOL batch = IS_BITS_SET_ALL(op_type, BATCH_OPLOCK );
|
||||
BOOL excl = ((op_type & EXCLUSIVE_OPLOCK) != 0);
|
||||
BOOL batch = ((op_type & BATCH_OPLOCK ) != 0);
|
||||
|
||||
oplock[0] = 0;
|
||||
|
||||
@ -106,7 +106,7 @@ char *get_server_type_str(uint32 type)
|
||||
typestr[0] = 0;
|
||||
for (i = 0; i < 32; i++)
|
||||
{
|
||||
if (IS_BITS_SET_ALL(type, 1 << i))
|
||||
if (type & (1 << i))
|
||||
{
|
||||
switch (((unsigned)1) << i)
|
||||
{
|
||||
@ -984,7 +984,7 @@ char *get_sec_mask_str(uint32 type)
|
||||
typestr[0] = 0;
|
||||
for (i = 0; i < 32; i++)
|
||||
{
|
||||
if (IS_BITS_SET_ALL(type, 1 << i))
|
||||
if (type & (1 << i))
|
||||
{
|
||||
switch (((unsigned)1) << i)
|
||||
{
|
||||
|
@ -54,7 +54,7 @@ static const char *get_sec_mask_str(uint32 type)
|
||||
typestr[0] = 0;
|
||||
for (i = 0; i < 32; i++)
|
||||
{
|
||||
if (IS_BITS_SET_ALL(type, 1 << i))
|
||||
if (type & (1 << i))
|
||||
{
|
||||
switch (1 << i)
|
||||
{
|
||||
|
@ -718,7 +718,7 @@ int reply_ntcreate_and_X(connection_struct *conn,
|
||||
|
||||
if( fname[0] == ':') {
|
||||
SSVAL(outbuf, smb_flg2, FLAGS2_32_BIT_ERROR_CODES);
|
||||
return(ERROR(0, 0xc0000000|NT_STATUS_OBJECT_PATH_NOT_FOUND));
|
||||
return(ERROR(0, NT_STATUS_OBJECT_PATH_NOT_FOUND));
|
||||
}
|
||||
return(ERROR(ERRDOS,ERRbadfid));
|
||||
}
|
||||
@ -848,7 +848,7 @@ int reply_ntcreate_and_X(connection_struct *conn,
|
||||
if (create_options & FILE_NON_DIRECTORY_FILE) {
|
||||
restore_case_semantics(file_attributes);
|
||||
SSVAL(outbuf, smb_flg2, FLAGS2_32_BIT_ERROR_CODES);
|
||||
return(ERROR(0, 0xc0000000|NT_STATUS_FILE_IS_A_DIRECTORY));
|
||||
return(ERROR(0, NT_STATUS_FILE_IS_A_DIRECTORY));
|
||||
}
|
||||
|
||||
oplock_request = 0;
|
||||
@ -1140,7 +1140,7 @@ static int call_nt_transact_create(connection_struct *conn,
|
||||
|
||||
if( fname[0] == ':') {
|
||||
SSVAL(outbuf, smb_flg2, FLAGS2_32_BIT_ERROR_CODES);
|
||||
return(ERROR(0, 0xc0000000|NT_STATUS_OBJECT_PATH_NOT_FOUND));
|
||||
return(ERROR(0, NT_STATUS_OBJECT_PATH_NOT_FOUND));
|
||||
}
|
||||
|
||||
return(ERROR(ERRDOS,ERRbadfid));
|
||||
@ -1250,7 +1250,7 @@ static int call_nt_transact_create(connection_struct *conn,
|
||||
if (create_options & FILE_NON_DIRECTORY_FILE) {
|
||||
restore_case_semantics(file_attributes);
|
||||
SSVAL(outbuf, smb_flg2, FLAGS2_32_BIT_ERROR_CODES);
|
||||
return(ERROR(0, 0xc0000000|NT_STATUS_FILE_IS_A_DIRECTORY));
|
||||
return(ERROR(0, NT_STATUS_FILE_IS_A_DIRECTORY));
|
||||
}
|
||||
|
||||
oplock_request = 0;
|
||||
@ -1524,7 +1524,7 @@ static int call_nt_transact_query_security_desc(connection_struct *conn,
|
||||
|
||||
free_sec_desc(&psd);
|
||||
|
||||
send_nt_replies(inbuf, outbuf, bufsize, 0xC0000000|NT_STATUS_BUFFER_TOO_SMALL,
|
||||
send_nt_replies(inbuf, outbuf, bufsize, NT_STATUS_BUFFER_TOO_SMALL,
|
||||
params, 4, *ppdata, 0);
|
||||
return -1;
|
||||
}
|
||||
|
@ -520,7 +520,7 @@ BOOL pass_check_smb(char *user, char *domain,
|
||||
if(smb_pass->acct_ctrl & ACB_DISABLED) {
|
||||
DEBUG(1,("Account for user '%s' was disabled.\n", user));
|
||||
return(False);
|
||||
}
|
||||
}
|
||||
|
||||
/* Ensure the uid's match */
|
||||
if (smb_pass->smb_userid != pass->pw_uid)
|
||||
@ -529,7 +529,7 @@ BOOL pass_check_smb(char *user, char *domain,
|
||||
return(False);
|
||||
}
|
||||
|
||||
if (lm_pwd[0] == '\0' && IS_BITS_SET_ALL(smb_pass->acct_ctrl, ACB_PWNOTREQ) && lp_null_passwords())
|
||||
if (lm_pwd[0] == '\0' && (smb_pass->acct_ctrl & ACB_PWNOTREQ) && lp_null_passwords())
|
||||
{
|
||||
DEBUG(3,("Account for user '%s' has no password and null passwords are allowed.\n", smb_pass->smb_name));
|
||||
return(True);
|
||||
|
@ -428,65 +428,54 @@ static int session_trust_account(connection_struct *conn, char *inbuf, char *out
|
||||
char *smb_nt_passwd, int smb_nt_passlen)
|
||||
{
|
||||
struct smb_passwd *smb_trust_acct = NULL; /* check if trust account exists */
|
||||
if (lp_security() == SEC_USER)
|
||||
{
|
||||
if (lp_security() == SEC_USER) {
|
||||
smb_trust_acct = getsmbpwnam(user);
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
DEBUG(0,("session_trust_account: Trust account %s only supported with security = user\n", user));
|
||||
SSVAL(outbuf, smb_flg2, FLAGS2_32_BIT_ERROR_CODES);
|
||||
return(ERROR(0, 0xc0000000|NT_STATUS_LOGON_FAILURE));
|
||||
return(ERROR(0, NT_STATUS_LOGON_FAILURE));
|
||||
}
|
||||
|
||||
if (smb_trust_acct == NULL)
|
||||
{
|
||||
if (smb_trust_acct == NULL) {
|
||||
/* lkclXXXX: workstation entry doesn't exist */
|
||||
DEBUG(0,("session_trust_account: Trust account %s user doesn't exist\n",user));
|
||||
SSVAL(outbuf, smb_flg2, FLAGS2_32_BIT_ERROR_CODES);
|
||||
return(ERROR(0, 0xc0000000|NT_STATUS_NO_SUCH_USER));
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((smb_passlen != 24) || (smb_nt_passlen != 24))
|
||||
{
|
||||
return(ERROR(0, NT_STATUS_NO_SUCH_USER));
|
||||
} else {
|
||||
if ((smb_passlen != 24) || (smb_nt_passlen != 24)) {
|
||||
DEBUG(0,("session_trust_account: Trust account %s - password length wrong.\n", user));
|
||||
SSVAL(outbuf, smb_flg2, FLAGS2_32_BIT_ERROR_CODES);
|
||||
return(ERROR(0, 0xc0000000|NT_STATUS_LOGON_FAILURE));
|
||||
return(ERROR(0, NT_STATUS_LOGON_FAILURE));
|
||||
}
|
||||
|
||||
if (!smb_password_ok(smb_trust_acct, NULL, (unsigned char *)smb_passwd, (unsigned char *)smb_nt_passwd))
|
||||
{
|
||||
if (!smb_password_ok(smb_trust_acct, NULL, (unsigned char *)smb_passwd, (unsigned char *)smb_nt_passwd)) {
|
||||
DEBUG(0,("session_trust_account: Trust Account %s - password failed\n", user));
|
||||
SSVAL(outbuf, smb_flg2, FLAGS2_32_BIT_ERROR_CODES);
|
||||
return(ERROR(0, 0xc0000000|NT_STATUS_LOGON_FAILURE));
|
||||
return(ERROR(0, NT_STATUS_LOGON_FAILURE));
|
||||
}
|
||||
|
||||
if (IS_BITS_SET_ALL(smb_trust_acct->acct_ctrl, ACB_DOMTRUST))
|
||||
{
|
||||
if (smb_trust_acct->acct_ctrl & ACB_DOMTRUST) {
|
||||
DEBUG(0,("session_trust_account: Domain trust account %s denied by server\n",user));
|
||||
SSVAL(outbuf, smb_flg2, FLAGS2_32_BIT_ERROR_CODES);
|
||||
return(ERROR(0, 0xc0000000|NT_STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT));
|
||||
return(ERROR(0, NT_STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT));
|
||||
}
|
||||
|
||||
if (IS_BITS_SET_ALL(smb_trust_acct->acct_ctrl, ACB_SVRTRUST))
|
||||
{
|
||||
if (smb_trust_acct->acct_ctrl & ACB_SVRTRUST) {
|
||||
DEBUG(0,("session_trust_account: Server trust account %s denied by server\n",user));
|
||||
SSVAL(outbuf, smb_flg2, FLAGS2_32_BIT_ERROR_CODES);
|
||||
return(ERROR(0, 0xc0000000|NT_STATUS_NOLOGON_SERVER_TRUST_ACCOUNT));
|
||||
return(ERROR(0, NT_STATUS_NOLOGON_SERVER_TRUST_ACCOUNT));
|
||||
}
|
||||
|
||||
if (IS_BITS_SET_ALL(smb_trust_acct->acct_ctrl, ACB_WSTRUST))
|
||||
{
|
||||
if (smb_trust_acct->acct_ctrl & ACB_WSTRUST) {
|
||||
DEBUG(4,("session_trust_account: Wksta trust account %s denied by server\n", user));
|
||||
SSVAL(outbuf, smb_flg2, FLAGS2_32_BIT_ERROR_CODES);
|
||||
return(ERROR(0, 0xc0000000|NT_STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT));
|
||||
return(ERROR(0, NT_STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT));
|
||||
}
|
||||
}
|
||||
|
||||
/* don't know what to do: indicate logon failure */
|
||||
SSVAL(outbuf, smb_flg2, FLAGS2_32_BIT_ERROR_CODES);
|
||||
return(ERROR(0, 0xc0000000|NT_STATUS_LOGON_FAILURE));
|
||||
return(ERROR(0, NT_STATUS_LOGON_FAILURE));
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
@ -637,7 +626,7 @@ static int bad_password_error(char *inbuf,char *outbuf)
|
||||
if(((ra_type == RA_WINNT) || (ra_type == RA_WIN2K)) &&
|
||||
(global_client_caps & (CAP_NT_SMBS | CAP_STATUS32 ))) {
|
||||
SSVAL(outbuf,smb_flg2,FLAGS2_32_BIT_ERROR_CODES);
|
||||
return(ERROR(0,0xc0000000|NT_STATUS_LOGON_FAILURE));
|
||||
return(ERROR(0,NT_STATUS_LOGON_FAILURE));
|
||||
}
|
||||
|
||||
return(ERROR(ERRSRV,ERRbadpw));
|
||||
|
Loading…
x
Reference in New Issue
Block a user