summaryrefslogtreecommitdiff
path: root/source3/rpc_parse/parse_reg.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/rpc_parse/parse_reg.c')
-rw-r--r--source3/rpc_parse/parse_reg.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/source3/rpc_parse/parse_reg.c b/source3/rpc_parse/parse_reg.c
index 7e9b12b4ec..f22bf10ff8 100644
--- a/source3/rpc_parse/parse_reg.c
+++ b/source3/rpc_parse/parse_reg.c
@@ -551,7 +551,7 @@ void make_reg_q_set_key_sec(REG_Q_SET_KEY_SEC *q_i, POLICY_HND *pol,
memcpy(&(q_i->pol), pol, sizeof(q_i->pol));
- q_i->unknown = 0x7;
+ q_i->unknown = 0x4;
q_i->ptr = 1;
make_buf_hdr(&(q_i->hdr_sec), buf_len, buf_len);
@@ -582,8 +582,10 @@ void reg_io_q_set_key_sec(char *desc, REG_Q_SET_KEY_SEC *r_q, prs_struct *ps, i
smb_io_hdrbuf_pre("hdr_sec", &(r_q->hdr_sec), ps, depth, &hdr_offset);
old_offset = ps->offset;
sec_io_desc_buf("data ", &(r_q->data ), ps, depth);
+ smb_io_hdrbuf_post("hdr_sec", &(r_q->hdr_sec), ps, depth, hdr_offset,
+ r_q->data.max_len, r_q->data.len);
+ ps->offset = old_offset + r_q->data.len + sizeof(uint32) * 3;
prs_align(ps);
- smb_io_hdrbuf_post("hdr_sec", &(r_q->hdr_sec), ps, depth, hdr_offset, old_offset);
}
}
@@ -594,7 +596,7 @@ void reg_io_r_set_key_sec(char *desc, REG_R_SET_KEY_SEC *r_q, prs_struct *ps, in
{
if (r_q == NULL) return;
- prs_debug(ps, depth, desc, "reg_io_r_get_key_sec");
+ prs_debug(ps, depth, desc, "reg_io_r_set_key_sec");
depth++;
prs_align(ps);
@@ -644,9 +646,14 @@ void reg_io_q_get_key_sec(char *desc, REG_Q_GET_KEY_SEC *r_q, prs_struct *ps, i
if (r_q->ptr != 0)
{
- smb_io_hdrbuf ("hdr_sec", &(r_q->hdr_sec), ps, depth);
- sec_io_desc_buf("data ", r_q->data , ps, depth);
-
+ uint32 hdr_offset;
+ uint32 old_offset;
+ smb_io_hdrbuf_pre("hdr_sec", &(r_q->hdr_sec), ps, depth, &hdr_offset);
+ old_offset = ps->offset;
+ sec_io_desc_buf("data ", r_q->data , ps, depth);
+ smb_io_hdrbuf_post("hdr_sec", &(r_q->hdr_sec), ps, depth, hdr_offset,
+ r_q->data->max_len, r_q->data->len);
+ ps->offset = old_offset + r_q->data->len + sizeof(uint32) * 3;
prs_align(ps);
}
}