summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2009-12-14 16:48:38 +0100
committerKarolin Seeger <kseeger@samba.org>2009-12-15 08:16:51 +0100
commit5511fd4193f75d0a911f86fe859af9eb9df2310d (patch)
tree58e69e05ebb66c27f803511c58c128e8d5cf46c6
parentebe81ca6f19ec10173cdd4d867e9ca3440d47fd7 (diff)
downloadsamba-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.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 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;