From: Günther Deschner Date: Thu, 17 Jul 2008 23:11:32 +0000 (+0200) Subject: netapi: fix NetGroupGetInfo() against NT4. X-Git-Tag: samba-3.3.0pre1~502 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c0fea9c4d0d3d297972c052c17b9be6d0530e098;p=thirdparty%2Fsamba.git netapi: fix NetGroupGetInfo() against NT4. Guenther --- diff --git a/source/lib/netapi/group.c b/source/lib/netapi/group.c index 6d9ed18b689..f856ec0a133 100644 --- a/source/lib/netapi/group.c +++ b/source/lib/netapi/group.c @@ -659,6 +659,7 @@ WERROR NetGroupGetInfo_r(struct libnetapi_ctx *ctx, struct samr_Ids rids; struct samr_Ids types; union samr_GroupInfo *info = NULL; + bool group_info_all = false; ZERO_STRUCT(connect_handle); ZERO_STRUCT(domain_handle); @@ -721,13 +722,22 @@ WERROR NetGroupGetInfo_r(struct libnetapi_ctx *ctx, &group_handle, GROUPINFOALL2, &info); + if (NT_STATUS_EQUAL(status, NT_STATUS_INVALID_INFO_CLASS)) { + status = rpccli_samr_QueryGroupInfo(pipe_cli, ctx, + &group_handle, + GROUPINFOALL, + &info); + group_info_all = true; + } + if (!NT_STATUS_IS_OK(status)) { werr = ntstatus_to_werror(status); goto done; } werr = map_group_info_to_buffer(ctx, r->in.level, - &info->all2, domain_sid, rids.ids[0], + group_info_all ? &info->all : &info->all2, + domain_sid, rids.ids[0], r->out.buf); if (!W_ERROR_IS_OK(werr)) { goto done;