diff options
author | Volker Lendecke <vlendec@samba.org> | 2007-03-24 18:14:46 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:18:52 -0500 |
commit | eca13022ef78237f915c8fec1ecbe676b1c86ae3 (patch) | |
tree | 8b317d905b3c1496277f4ada32fbcf1251cffebb /source3/librpc/ndr | |
parent | 643157ff5ac13b15a4b501b00ffdca5fced0e7e9 (diff) | |
download | samba-eca13022ef78237f915c8fec1ecbe676b1c86ae3.tar.gz samba-eca13022ef78237f915c8fec1ecbe676b1c86ae3.tar.bz2 samba-eca13022ef78237f915c8fec1ecbe676b1c86ae3.zip |
r21960: Fix bugs 4463,4464,4465,4466. Thanks Jason :-)
(This used to be commit a2e27c443101a59ef3429a55e049af3ebd5ec1f2)
Diffstat (limited to 'source3/librpc/ndr')
-rw-r--r-- | source3/librpc/ndr/ndr_sec_helper.c | 8 | ||||
-rw-r--r-- | source3/librpc/ndr/sid.c | 2 |
2 files changed, 5 insertions, 5 deletions
diff --git a/source3/librpc/ndr/ndr_sec_helper.c b/source3/librpc/ndr/ndr_sec_helper.c index 944b172d6c..46dd5d5580 100644 --- a/source3/librpc/ndr/ndr_sec_helper.c +++ b/source3/librpc/ndr/ndr_sec_helper.c @@ -130,7 +130,7 @@ static NTSTATUS ndr_pull_security_ace_type(struct ndr_pull *ndr, int ndr_flags, { uint8_t v; NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &v)); - *r = v; + *r = (enum security_ace_type)v; return NT_STATUS_OK; } @@ -559,7 +559,7 @@ static NTSTATUS ndr_pull_security_acl_revision(struct ndr_pull *ndr, int ndr_fla { uint16_t v; NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v)); - *r = v; + *r = (enum security_acl_revision)v; return NT_STATUS_OK; } @@ -603,7 +603,7 @@ NTSTATUS ndr_pull_security_acl(struct ndr_pull *ndr, int ndr_flags, struct secur NDR_CHECK(ndr_pull_security_acl_revision(ndr, NDR_SCALARS, &r->revision)); NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size)); NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_aces)); - if (r->num_aces < 0 || r->num_aces > 1000) { + if (r->num_aces > 1000) { /* num_aces is unsigned */ return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range"); } NDR_PULL_ALLOC_N(ndr, r->aces, r->num_aces); @@ -657,7 +657,7 @@ static NTSTATUS ndr_pull_security_descriptor_revision(struct ndr_pull *ndr, int { uint8_t v; NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &v)); - *r = v; + *r = (enum security_descriptor_revision)v; return NT_STATUS_OK; } diff --git a/source3/librpc/ndr/sid.c b/source3/librpc/ndr/sid.c index 0a9ddb883b..61790b3630 100644 --- a/source3/librpc/ndr/sid.c +++ b/source3/librpc/ndr/sid.c @@ -211,7 +211,7 @@ NTSTATUS ndr_pull_sec_desc_buf(struct ndr_pull *ndr, int ndr_flags, struct sec_d if (ndr_flags & NDR_SCALARS) { NDR_CHECK(ndr_pull_align(ndr, 4)); NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sd_size)); - if (r->sd_size < 0 || r->sd_size > 0x40000) { + if (r->sd_size > 0x40000) { /* sd_size is unsigned */ return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range"); } NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sd)); |