[PATCH] fix return of resolve_ads if there is no answer

Michael Adam obnox at samba.org
Wed Jul 1 10:19:34 MDT 2015


On 2015-07-01 at 17:54 +0200, Stefan (metze) Metzmacher wrote:
> Am 01.07.2015 um 08:19 schrieb Michael Adam:
> > Hi,
> > 
> > Looking at autobuild-logs, I observed a ton of messages like
> > 
> > [...]/b5997/samba/bin/winbindd: resolve_ads: malloc failed for 0 entries
> > 
> > This uncovered that resolve_ads does not treat the
> > case with 0 answers correctly. Attached is a patch
> > to fix resolve_ads.
> > 
> > Review/Push appreciated.
> 
> Reviewed-by: me
> 
> Something related attached...

one comment inline

> metze

> From 74ad47621dea55314f5bd93085db17f819a29869 Mon Sep 17 00:00:00 2001
> From: Stefan Metzmacher <metze at samba.org>
> Date: Sat, 27 Jun 2015 09:31:21 +0200
> Subject: [PATCH] s3:libads: improve debug levels/messages in ads_find_dc()
> 
> We should not flood the logs (and syslog) with fallback warnings.
> 
> Signed-off-by: Stefan Metzmacher <metze at samba.org>
> ---
>  source3/libads/ldap.c | 22 ++++++++++++++--------
>  1 file changed, 14 insertions(+), 8 deletions(-)
> 
> diff --git a/source3/libads/ldap.c b/source3/libads/ldap.c
> index 5c53c63..8763164 100644
> --- a/source3/libads/ldap.c
> +++ b/source3/libads/ldap.c
> @@ -467,7 +467,7 @@ static NTSTATUS ads_find_dc(ADS_STRUCT *ads)
>  	}
>  
>  	if (!*c_realm && !*c_domain) {
> -		DEBUG(1, ("ads_find_dc: no realm or workgroup!  Don't know "
> +		DEBUG(0, ("ads_find_dc: no realm or workgroup!  Don't know "
>  			  "what to do\n"));


That log level change does not quite match the commit message.
Do you really mean 0 here?

>  		return NT_STATUS_INVALID_PARAMETER; /* rather need MISSING_PARAMETER ... */
>  	}
> @@ -515,10 +515,10 @@ static NTSTATUS ads_find_dc(ADS_STRUCT *ads)
>  		 * - Guenther */
>  
>  		if (sitename) {
> -			DEBUG(1, ("ads_find_dc: failed to find a valid DC on "
> -				  "our site (%s), "
> -				  "trying to find another DC\n",
> -				  sitename));
> +			DEBUG(3, ("ads_find_dc: failed to find a valid DC on "
> +				  "our site (%s), Trying to find another DC "
> +				  "for realm '%s' (domain '%s')\n",
> +				  sitename, c_realm, c_domain));
>  			namecache_delete(c_realm, 0x1C);
>  			status =
>  			    resolve_and_ping_dns(ads, NULL, c_realm);
> @@ -536,14 +536,20 @@ static NTSTATUS ads_find_dc(ADS_STRUCT *ads)
>  	   or if configuration specifically requests it */
>  	if (*c_domain) {
>  		if (*c_realm) {
> -			DEBUG(1, ("ads_find_dc: falling back to netbios "
> -				  "name resolution for domain %s\n",
> -				  c_domain));
> +			DEBUG(3, ("ads_find_dc: falling back to netbios "
> +				  "name resolution for domain '%s' (realm '%s')\n",
> +				  c_domain, c_realm));
>  		}
>  
>  		status = resolve_and_ping_netbios(ads, c_domain, c_realm);
> +		if (NT_STATUS_IS_OK(status)) {
> +			return status;
> +		}
>  	}
>  
> +	DEBUG(1, ("ads_find_dc: "
> +		  "name resolution for realm '%s' (domain '%s') failed: %s\n",
> +		  c_realm, c_domain, nt_errstr(status)));
>  	return status;
>  }
>  
> -- 
> 1.9.1
> 



-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://lists.samba.org/pipermail/samba-technical/attachments/20150701/57614c2f/attachment.pgp>


More information about the samba-technical mailing list