1
0
mirror of https://github.com/samba-team/samba.git synced 2025-08-03 04:22:09 +03:00

Serious (and I *mean* serious) attempt to fix little/bigendian RPC issues.

We were reading the endainness in the RPC header and then never propagating
it to the internal parse_structs used to parse the data.
Also removed the "align" argument to prs_init as it was *always* set to
4, and if needed can be set differently on a case by case basis.
Now ready for AS/U testing when Herb gets it set up :-).
Jeremy.
This commit is contained in:
Jeremy Allison
-
parent 1d84da779a
commit 0cd37c831d
24 changed files with 517 additions and 245 deletions

View File

@ -113,8 +113,8 @@ BOOL do_samr_chgpasswd_user(struct cli_state *cli,
/* create and send a MSRPC command with api SAMR_CHGPASSWD_USER */
prs_init(&data , MAX_PDU_FRAG_LEN, 4, cli->mem_ctx, MARSHALL);
prs_init(&rdata, 0, 4, cli->mem_ctx, UNMARSHALL);
prs_init(&data, MAX_PDU_FRAG_LEN, cli->mem_ctx, MARSHALL);
prs_init(&rdata, 0, cli->mem_ctx, UNMARSHALL);
DEBUG(4,("SAMR Change User Password. server:%s username:%s\n",
srv_name, user_name));
@ -169,8 +169,8 @@ BOOL do_samr_unknown_38(struct cli_state *cli, char *srv_name)
/* create and send a MSRPC command with api SAMR_ENUM_DOM_USERS */
prs_init(&data , MAX_PDU_FRAG_LEN, 4, cli->mem_ctx, MARSHALL);
prs_init(&rdata, 0, 4, cli->mem_ctx, UNMARSHALL);
prs_init(&data, MAX_PDU_FRAG_LEN, cli->mem_ctx, MARSHALL);
prs_init(&rdata, 0, cli->mem_ctx, UNMARSHALL);
DEBUG(4,("SAMR Unknown 38 server:%s\n", srv_name));
@ -225,8 +225,8 @@ BOOL do_samr_query_dom_info(struct cli_state *cli,
/* create and send a MSRPC command with api SAMR_ENUM_DOM_USERS */
prs_init(&data , MAX_PDU_FRAG_LEN, 4, cli->mem_ctx, MARSHALL);
prs_init(&rdata, 0, 4, cli->mem_ctx, UNMARSHALL);
prs_init(&data, MAX_PDU_FRAG_LEN, cli->mem_ctx, MARSHALL);
prs_init(&rdata, 0, cli->mem_ctx, UNMARSHALL);
DEBUG(4,("SAMR Unknown 8 switch:%d\n", switch_value));
@ -287,8 +287,8 @@ BOOL do_samr_enum_dom_users(struct cli_state *cli,
/* create and send a MSRPC command with api SAMR_ENUM_DOM_USERS */
prs_init(&data , MAX_PDU_FRAG_LEN, 4, cli->mem_ctx, MARSHALL);
prs_init(&rdata, 0, 4, cli->mem_ctx, UNMARSHALL);
prs_init(&data, MAX_PDU_FRAG_LEN, cli->mem_ctx, MARSHALL);
prs_init(&rdata, 0, cli->mem_ctx, UNMARSHALL);
DEBUG(4,("SAMR Enum SAM DB max size:%x\n", size));
@ -374,8 +374,8 @@ BOOL do_samr_connect(struct cli_state *cli,
/* create and send a MSRPC command with api SAMR_CONNECT */
prs_init(&data , MAX_PDU_FRAG_LEN, 4, cli->mem_ctx, MARSHALL);
prs_init(&rdata, 0, 4, cli->mem_ctx, UNMARSHALL);
prs_init(&data, MAX_PDU_FRAG_LEN, cli->mem_ctx, MARSHALL);
prs_init(&rdata, 0, cli->mem_ctx, UNMARSHALL);
DEBUG(4,("SAMR Open Policy server:%s undoc value:%x\n",
srv_name, unknown_0));
@ -435,8 +435,8 @@ BOOL do_samr_open_user(struct cli_state *cli,
/* create and send a MSRPC command with api SAMR_OPEN_USER */
prs_init(&data , MAX_PDU_FRAG_LEN, 4, cli->mem_ctx, MARSHALL);
prs_init(&rdata, 0, 4, cli->mem_ctx, UNMARSHALL);
prs_init(&data, MAX_PDU_FRAG_LEN, cli->mem_ctx, MARSHALL);
prs_init(&rdata, 0, cli->mem_ctx, UNMARSHALL);
DEBUG(4,("SAMR Open User. unk_0: %08x RID:%x\n",
unk_0, rid));
@ -497,8 +497,8 @@ BOOL do_samr_open_domain(struct cli_state *cli,
/* create and send a MSRPC command with api SAMR_OPEN_DOMAIN */
prs_init(&data , MAX_PDU_FRAG_LEN, 4, cli->mem_ctx, MARSHALL);
prs_init(&rdata, 0, 4, cli->mem_ctx, UNMARSHALL);
prs_init(&data, MAX_PDU_FRAG_LEN, cli->mem_ctx, MARSHALL);
prs_init(&rdata, 0, cli->mem_ctx, UNMARSHALL);
sid_to_string(sid_str, sid);
DEBUG(4,("SAMR Open Domain. SID:%s RID:%x\n", sid_str, rid));
@ -561,8 +561,8 @@ BOOL do_samr_query_unknown_12(struct cli_state *cli,
/* create and send a MSRPC command with api SAMR_UNKNOWN_12 */
prs_init(&data , MAX_PDU_FRAG_LEN, 4, cli->mem_ctx, MARSHALL);
prs_init(&rdata, 0, 4, cli->mem_ctx, UNMARSHALL);
prs_init(&data, MAX_PDU_FRAG_LEN, cli->mem_ctx, MARSHALL);
prs_init(&rdata, 0, cli->mem_ctx, UNMARSHALL);
DEBUG(4,("SAMR Query Unknown 12.\n"));
@ -638,8 +638,8 @@ BOOL do_samr_query_usergroups(struct cli_state *cli,
/* create and send a MSRPC command with api SAMR_QUERY_USERGROUPS */
prs_init(&data , MAX_PDU_FRAG_LEN, 4, cli->mem_ctx, MARSHALL);
prs_init(&rdata, 0, 4, cli->mem_ctx, UNMARSHALL);
prs_init(&data, MAX_PDU_FRAG_LEN, cli->mem_ctx, MARSHALL);
prs_init(&rdata, 0, cli->mem_ctx, UNMARSHALL);
DEBUG(4,("SAMR Query User Groups.\n"));
@ -700,8 +700,8 @@ BOOL do_samr_query_userinfo(struct cli_state *cli,
/* create and send a MSRPC command with api SAMR_QUERY_USERINFO */
prs_init(&data , MAX_PDU_FRAG_LEN, 4, cli->mem_ctx, MARSHALL);
prs_init(&rdata, 0, 4, cli->mem_ctx, UNMARSHALL);
prs_init(&data, MAX_PDU_FRAG_LEN, cli->mem_ctx, MARSHALL);
prs_init(&rdata, 0, cli->mem_ctx, UNMARSHALL);
DEBUG(4,("SAMR Query User Info. level: %d\n", switch_value));
@ -769,8 +769,8 @@ BOOL do_samr_close(struct cli_state *cli, POLICY_HND *hnd)
if (hnd == NULL)
return False;
prs_init(&data , MAX_PDU_FRAG_LEN, 4, cli->mem_ctx, MARSHALL);
prs_init(&rdata, 0, 4, cli->mem_ctx, UNMARSHALL);
prs_init(&data, MAX_PDU_FRAG_LEN, cli->mem_ctx, MARSHALL);
prs_init(&rdata, 0, cli->mem_ctx, UNMARSHALL);
/* create and send a MSRPC command with api SAMR_CLOSE_HND */