librpc/ndr: Initilaise the remainder of struct dom_sid after a pull
authorAndrew Bartlett <abartlet@samba.org>
Tue, 26 Jun 2012 10:07:32 +0000 (20:07 +1000)
committerAndrew Bartlett <abartlet@samba.org>
Thu, 28 Jun 2012 16:46:23 +0000 (18:46 +0200)
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

index 984b6bd4aac69574752977950aa20a969bbf2423..66b0013b9cb42e088caf771d79fb16fafa6150a2 100644 (file)
@@ -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]));
                }