summaryrefslogtreecommitdiff
path: root/source3/rpc_parse/parse_reg.c
diff options
context:
space:
mode:
authorLuke Leighton <lkcl@samba.org>1998-11-12 19:21:20 +0000
committerLuke Leighton <lkcl@samba.org>1998-11-12 19:21:20 +0000
commit597c5a6caa871b724ee1337f14467950b0707b34 (patch)
tree5e32ee8e5887ad0a650721b592b8364d2b1bd98c /source3/rpc_parse/parse_reg.c
parent7e71258563a8d34eb1fa1a67e27d7339510bffc9 (diff)
downloadsamba-597c5a6caa871b724ee1337f14467950b0707b34.tar.gz
samba-597c5a6caa871b724ee1337f14467950b0707b34.tar.bz2
samba-597c5a6caa871b724ee1337f14467950b0707b34.zip
jean-f. sent me some S-1-3-0,1,2,3 SIDs and names. S-1-3 doesn't exist.
security descriptor testing. hey wow, you can get a SD then send it back! (This used to be commit 7466c3113ef8f8a89b8496efadfeb611c9f3e069)
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);
}
}