[nsd-users] NSD 4.9.0rc1 pre-release

Jeroen Koekkoek jeroen at nlnetlabs.nl
Tue Apr 2 11:28:40 UTC 2024


Hi,

Thanks Florian! I'll check this out later today or tomorrow.

Best,
Jeroen


On Mon, 2024-04-01 at 19:44 +0200, Florian Obser via nsd-users wrote:
> Hi,
> 
> over at OpenBSD we are not too fond of strcat/strcpy to put it
> mildly.
> 
> I hope this is acceptable.
> 
> Sorry for the inline patch, I no longer use GitHub,
> Florian
> 
> From b61c840c7f30b9e56a0da2fd6e30a836efcd5a9c Mon Sep 17 00:00:00
> 2001
> From: Florian Obser <florian at narrans.de>
> Date: Mon, 1 Apr 2024 19:39:55 +0200
> Subject: [PATCH] snprintf concatenates strings and checks the length
> in one
>  go.
> 
> This is safer and easier to understand.
> ---
>  options.c | 9 ++++-----
>  1 file changed, 4 insertions(+), 5 deletions(-)
> 
> diff --git options.c options.c
> index 1cfeeb94..75b8e183 100644
> --- options.c
> +++ options.c
> @@ -463,14 +463,13 @@ zone_list_member_zone_insert(struct
> nsd_options* opt, const char* nm,
>  			"zone value provided in zone '%s' or pattern
> '%s'",
>  			mem_idnm, nm, patnm);
>  
> -	else if(strlen(pat->catalog_producer_zone)
> -	      + strlen(mem_idnm) + 9 > sizeof(member_id_str))
> +	else if(snprintf(member_id_str, sizeof(member_id_str),
> +	    "%s.zones.%s", mem_idnm, pat->catalog_producer_zone) >=
> +	    sizeof(member_id_str))
>  		log_msg(LOG_ERR, "syntax error in member ID
> '%s.zones.%s' for "
>  			"zone '%s'", mem_idnm, pat-
> >catalog_producer_zone, nm);
>  
> -	else if(!(cmz->member_id = dname_parse(opt->region,
> strcat(strcat(
> -				strcpy(member_id_str,
> mem_idnm),".zones."),
> -					pat-
> >catalog_producer_zone))))
> +	else if(!(cmz->member_id = dname_parse(opt->region,
> member_id_str)))
>  		log_msg(LOG_ERR, "parse error in member ID '%s' for
> "
>  			"zone '%s'", member_id_str, nm);
>  	return zone;
> -- 
> 2.44.0
> 
> 
> 
> 



More information about the nsd-users mailing list