From 15b9198644613536401a49dd779d4e9be706d980 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Tue, 26 Jun 2012 20:07:32 +1000 Subject: [PATCH] librpc/ndr: Initilaise the remainder of struct dom_sid after a pull This copes with the fact that r->sub_auths is a fixed-size array, not an allocated pointer, and so will still have some bytes no filled in if the sid did not have a MAX_SUB_AUTHS sub-authorities. Andrew Bartlett --- librpc/ndr/ndr_sec_helper.c | 1 + 1 file changed, 1 insertion(+) diff --git a/librpc/ndr/ndr_sec_helper.c b/librpc/ndr/ndr_sec_helper.c index 984b6bd4aac..66b0013b9cb 100644 --- a/librpc/ndr/ndr_sec_helper.c +++ b/librpc/ndr/ndr_sec_helper.c @@ -335,6 +335,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_dom_sid(struct ndr_pull *ndr, int ndr_flags, return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range"); } NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->id_auth, 6)); + ZERO_STRUCT(r->sub_auths); for (cntr_sub_auths_0 = 0; cntr_sub_auths_0 < r->num_auths; cntr_sub_auths_0++) { NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sub_auths[cntr_sub_auths_0])); }