1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-13 13:18:06 +03:00

r2199: the unknown 16 bit number in lsa_LookupPrivDisplayName() is a language

ID, so the client can choose what language they get the privilege
description in.

this is the first time I've seen a language ID on the wire in CIFS.
This commit is contained in:
Andrew Tridgell 2004-09-03 05:16:25 +00:00 committed by Gerald (Jerry) Carter
parent c80d686f59
commit e99d88915f
2 changed files with 12 additions and 4 deletions

View File

@ -458,10 +458,11 @@
NTSTATUS lsa_LookupPrivDisplayName (
[in,ref] policy_handle *handle,
[in,ref] lsa_Name *name,
[in] uint16 unknown, /* 0x0409 */
[in] uint16 unknown2, /* 0x0409 */
[out] lsa_Name *disp_name,
[out] uint16 unknown3 /* 0x0409 */
/* see http://www.microsoft.com/globaldev/nlsweb/ for
language definitions */
[in,out,ref] uint16 *language_id,
[in] uint16 unknown
);
/* Function: 0x22 */

View File

@ -642,19 +642,26 @@ static BOOL test_LookupPrivDisplayName(struct dcerpc_pipe *p,
{
struct lsa_LookupPrivDisplayName r;
NTSTATUS status;
/* produce a reasonable range of language output without screwing up
terminals */
uint16 language_id = (random() % 4) + 0x409;
printf("testing LookupPrivDisplayName(%s)\n", priv_name->name);
r.in.handle = handle;
r.in.name = priv_name;
r.in.language_id = &language_id;
r.out.language_id = &language_id;
r.in.unknown = 0;
r.in.unknown2 = 0;
status = dcerpc_lsa_LookupPrivDisplayName(p, mem_ctx, &r);
if (!NT_STATUS_IS_OK(status)) {
printf("LookupPrivDisplayName failed - %s\n", nt_errstr(status));
return False;
}
printf("%s -> \"%s\" (language 0x%x/0x%x)\n",
priv_name->name, r.out.disp_name->name,
*r.in.language_id, *r.out.language_id);
return True;
}