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:
parent
c80d686f59
commit
e99d88915f
@ -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 */
|
||||
|
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user