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 <flor...@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 > > > > _______________________________________________ nsd-users mailing list nsd-users@lists.nlnetlabs.nl https://lists.nlnetlabs.nl/mailman/listinfo/nsd-users