diff options
author | Volker Lendecke <vl@samba.org> | 2009-12-14 16:48:38 +0100 |
---|---|---|
committer | Volker Lendecke <vl@samba.org> | 2009-12-14 17:00:12 +0100 |
commit | 0d10efe1fdec2a621bd6580e3e120287c1682d07 (patch) | |
tree | 26385319052b3e6a6341900439ac001375af7508 | |
parent | 9260396bbc9651ca44c6348c5fe1e6ccc464ab13 (diff) | |
download | samba-0d10efe1fdec2a621bd6580e3e120287c1682d07.tar.gz samba-0d10efe1fdec2a621bd6580e3e120287c1682d07.tar.bz2 samba-0d10efe1fdec2a621bd6580e3e120287c1682d07.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
-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 a0af571283..4a4a95d77a 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 ad7b2be32e..b198350b2d 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 a893786afa..baa5c93c2c 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; |