Ignore:
Timestamp:
May 26, 2009, 9:44:50 AM (16 years ago)
Author:
Herwig Bauernfeind
Message:

Update 3.2 branch to 3.2.6

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/samba-3.2.x/source/librpc/ndr/ndr_sec_helper.c

    r133 r228  
    2222
    2323#include "includes.h"
     24#include "librpc/gen_ndr/security.h"
    2425
    2526/*
     
    5051{
    5152        return ndr_size_dom_sid28(sid, flags);
     53}
     54
     55enum ndr_err_code ndr_pull_security_ace(struct ndr_pull *ndr, int ndr_flags, struct security_ace *r)
     56{
     57        if (ndr_flags & NDR_SCALARS) {
     58                uint32_t start_ofs = ndr->offset;
     59                uint32_t size = 0;
     60                uint32_t pad = 0;
     61                NDR_CHECK(ndr_pull_align(ndr, 4));
     62                NDR_CHECK(ndr_pull_security_ace_type(ndr, NDR_SCALARS, &r->type));
     63                NDR_CHECK(ndr_pull_security_ace_flags(ndr, NDR_SCALARS, &r->flags));
     64                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
     65                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->access_mask));
     66                NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->object, r->type));
     67                NDR_CHECK(ndr_pull_security_ace_object_ctr(ndr, NDR_SCALARS, &r->object));
     68                NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, &r->trustee));
     69                size = ndr->offset - start_ofs;
     70                if (r->size < size) {
     71                        return ndr_pull_error(ndr, NDR_ERR_BUFSIZE,
     72                                              "ndr_pull_security_ace: r->size %u < size %u",
     73                                              (unsigned)r->size, size);
     74                }
     75                pad = r->size - size;
     76                NDR_PULL_NEED_BYTES(ndr, pad);
     77                ndr->offset += pad;
     78        }
     79        if (ndr_flags & NDR_BUFFERS) {
     80                NDR_CHECK(ndr_pull_security_ace_object_ctr(ndr, NDR_BUFFERS, &r->object));
     81        }
     82        return NDR_ERR_SUCCESS;
    5283}
    5384
Note: See TracChangeset for help on using the changeset viewer.