diff options
author | Volker Lendecke <vl@samba.org> | 2009-12-14 16:48:38 +0100 |
---|---|---|
committer | Karolin Seeger <kseeger@samba.org> | 2009-12-15 08:16:51 +0100 |
commit | 5511fd4193f75d0a911f86fe859af9eb9df2310d (patch) | |
tree | 58e69e05ebb66c27f803511c58c128e8d5cf46c6 | |
parent | ebe81ca6f19ec10173cdd4d867e9ca3440d47fd7 (diff) | |
download | samba-5511fd4193f75d0a911f86fe859af9eb9df2310d.tar.gz samba-5511fd4193f75d0a911f86fe859af9eb9df2310d.tar.xz samba-5511fd4193f75d0a911f86fe859af9eb9df2310d.zip |
s3: Allow up to 20480 entries in LookupSids, as mandated by the official IDL
Seen in the wild by putting >1000 users into BUILTIN\Users
(cherry picked from commit 477edb8bdf3def827c398c4fc01dffd2071ea77e)
-rw-r--r-- | librpc/gen_ndr/lsa.h | 4 | ||||
-rw-r--r-- | librpc/gen_ndr/ndr_lsa.c | 4 | ||||
-rw-r--r-- | librpc/idl/lsa.idl | 4 |
3 files changed, 6 insertions, 6 deletions
diff --git a/librpc/gen_ndr/lsa.h b/librpc/gen_ndr/lsa.h index a0af5712834..4a4a95d77a2 100644 --- a/librpc/gen_ndr/lsa.h +++ b/librpc/gen_ndr/lsa.h @@ -312,7 +312,7 @@ struct lsa_SidPtr { }; struct lsa_SidArray { - uint32_t num_sids;/* [range(0,1000)] */ + uint32_t num_sids;/* [range(0,20480)] */ struct lsa_SidPtr *sids;/* [unique,size_is(num_sids)] */ }/* [public] */; @@ -397,7 +397,7 @@ struct lsa_TranslatedName { }; struct lsa_TransNameArray { - uint32_t count;/* [range(0,1000)] */ + uint32_t count;/* [range(0,20480)] */ struct lsa_TranslatedName *names;/* [unique,size_is(count)] */ }; diff --git a/librpc/gen_ndr/ndr_lsa.c b/librpc/gen_ndr/ndr_lsa.c index 6050714910b..f1b87ec06c5 100644 --- a/librpc/gen_ndr/ndr_lsa.c +++ b/librpc/gen_ndr/ndr_lsa.c @@ -1945,7 +1945,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_lsa_SidArray(struct ndr_pull *ndr, int ndr_f if (ndr_flags & NDR_SCALARS) { NDR_CHECK(ndr_pull_align(ndr, 5)); NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_sids)); - if (r->num_sids > 1000) { + if (r->num_sids > 20480) { return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range"); } NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids)); @@ -2444,7 +2444,7 @@ static enum ndr_err_code ndr_pull_lsa_TransNameArray(struct ndr_pull *ndr, int n if (ndr_flags & NDR_SCALARS) { NDR_CHECK(ndr_pull_align(ndr, 5)); NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count)); - if (r->count > 1000) { + if (r->count > 20480) { return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range"); } NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_names)); diff --git a/librpc/idl/lsa.idl b/librpc/idl/lsa.idl index 097dda5a702..4ca8d6f0a7f 100644 --- a/librpc/idl/lsa.idl +++ b/librpc/idl/lsa.idl @@ -451,7 +451,7 @@ import "misc.idl", "security.idl"; } lsa_SidPtr; typedef [public] struct { - [range(0,1000)] uint32 num_sids; + [range(0,20480)] uint32 num_sids; [size_is(num_sids)] lsa_SidPtr *sids; } lsa_SidArray; @@ -564,7 +564,7 @@ import "misc.idl", "security.idl"; } lsa_TranslatedName; typedef struct { - [range(0,1000)] uint32 count; + [range(0,20480)] uint32 count; [size_is(count)] lsa_TranslatedName *names; } lsa_TransNameArray; |