mirror of
https://github.com/samba-team/samba.git
synced 2025-11-01 16:23:49 +03:00
dsgetdcname: check for invalid sitename/flag combinations.
Guenther
This commit is contained in:
@@ -582,7 +582,8 @@ static NTSTATUS dsgetdcname_cached(TALLOC_CTX *mem_ctx,
|
||||
/****************************************************************
|
||||
****************************************************************/
|
||||
|
||||
static bool check_allowed_required_flags(uint32_t flags)
|
||||
static bool check_allowed_required_flags(uint32_t flags,
|
||||
const char *site_name)
|
||||
{
|
||||
uint32_t return_type = flags & (DS_RETURN_FLAT_NAME|DS_RETURN_DNS_NAME);
|
||||
uint32_t offered_type = flags & (DS_IS_FLAT_NAME|DS_IS_DNS_NAME);
|
||||
@@ -593,6 +594,10 @@ static bool check_allowed_required_flags(uint32_t flags)
|
||||
|
||||
debug_dsdcinfo_flags(10, flags);
|
||||
|
||||
if ((flags & DS_TRY_NEXTCLOSEST_SITE) && site_name) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (return_type == (DS_RETURN_FLAT_NAME|DS_RETURN_DNS_NAME)) {
|
||||
return false;
|
||||
}
|
||||
@@ -1394,7 +1399,7 @@ NTSTATUS dsgetdcname(TALLOC_CTX *mem_ctx,
|
||||
|
||||
*info = NULL;
|
||||
|
||||
if (!check_allowed_required_flags(flags)) {
|
||||
if (!check_allowed_required_flags(flags, site_name)) {
|
||||
DEBUG(0,("invalid flags specified\n"));
|
||||
return NT_STATUS_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user