summaryrefslogtreecommitdiffstats
path: root/source3/lib/netapi/user.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2013-11-07 22:41:22 -0800
committerKarolin Seeger <kseeger@samba.org>2013-12-09 09:00:41 +0100
commitf799f63e4312b25d3c671e7a4072607fdba0c768 (patch)
treecf7bde894e1f9684328abfa05849108f822ab054 /source3/lib/netapi/user.c
parent0dc618189469bf389a583eb346ddc6acaad1c644 (diff)
downloadsamba-f799f63e4312b25d3c671e7a4072607fdba0c768.tar.gz
samba-f799f63e4312b25d3c671e7a4072607fdba0c768.tar.xz
samba-f799f63e4312b25d3c671e7a4072607fdba0c768.zip
CVE-2013-4408:s3:Ensure LookupRids() replies arrays are range checked.
Bug: https://bugzilla.samba.org/show_bug.cgi?id=10185 Signed-off-by: Jeremy Allison <jra@samba.org> Signed-off-by: Stefan Metzmacher <metze@samba.org> Autobuild-User(master): Karolin Seeger <kseeger@samba.org> Autobuild-Date(master): Mon Dec 9 09:00:41 CET 2013 on sn-devel-104
Diffstat (limited to 'source3/lib/netapi/user.c')
-rw-r--r--source3/lib/netapi/user.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/source3/lib/netapi/user.c b/source3/lib/netapi/user.c
index 72d4a8bdc3..4a39f6976d 100644
--- a/source3/lib/netapi/user.c
+++ b/source3/lib/netapi/user.c
@@ -3114,6 +3114,14 @@ WERROR NetUserGetGroups_r(struct libnetapi_ctx *ctx,
werr = ntstatus_to_werror(result);
goto done;
}
+ if (names.count != rid_array->count) {
+ werr = WERR_BAD_NET_RESP;
+ goto done;
+ }
+ if (types.count != rid_array->count) {
+ werr = WERR_BAD_NET_RESP;
+ goto done;
+ }
for (i=0; i < names.count; i++) {
status = add_GROUP_USERS_INFO_X_buffer(ctx,
@@ -3716,6 +3724,14 @@ WERROR NetUserGetLocalGroups_r(struct libnetapi_ctx *ctx,
werr = ntstatus_to_werror(result);
goto done;
}
+ if (names.count != num_rids) {
+ werr = WERR_BAD_NET_RESP;
+ goto done;
+ }
+ if (types.count != num_rids) {
+ werr = WERR_BAD_NET_RESP;
+ goto done;
+ }
for (i=0; i < names.count; i++) {
status = add_LOCALGROUP_USERS_INFO_X_buffer(ctx,