summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2009-12-14 16:48:38 +0100
committerVolker Lendecke <vl@samba.org>2009-12-14 17:00:12 +0100
commit0d10efe1fdec2a621bd6580e3e120287c1682d07 (patch)
tree26385319052b3e6a6341900439ac001375af7508
parent9260396bbc9651ca44c6348c5fe1e6ccc464ab13 (diff)
downloadsamba-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.h4
-rw-r--r--librpc/gen_ndr/ndr_lsa.c4
-rw-r--r--librpc/idl/lsa.idl4
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;