From: Ondřej Surý Date: Mon, 19 Nov 2018 06:10:43 +0000 (+0100) Subject: Use strlcpy in place where strncpy(s, ...) + s[sizeof(s)-1] = \0; was used X-Git-Tag: v9.13.4~6^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=175f06949f5dc9d2c51bdceeeeca334605d20337;p=thirdparty%2Fbind9.git Use strlcpy in place where strncpy(s, ...) + s[sizeof(s)-1] = \0; was used --- diff --git a/contrib/dlz/drivers/dlz_filesystem_driver.c b/contrib/dlz/drivers/dlz_filesystem_driver.c index 9fa03806807..97186e44335 100644 --- a/contrib/dlz/drivers/dlz_filesystem_driver.c +++ b/contrib/dlz/drivers/dlz_filesystem_driver.c @@ -60,6 +60,7 @@ #include #include #include +#include #include #include @@ -438,12 +439,12 @@ process_dir(isc_dir_t *dir, void *passback, config_data_t *cd, */ if (strcmp((char *) &dir->entry.name[6], "-") == 0) - strcpy(host, "*"); - else { - strncpy(host, + { + strlcpy(host, "*", sizeof(host)); + } else { + strlcpy(host, (char *) &dir->entry.name[6], - sizeof(host) - 1); - host[NAME_MAX-1] = '\0'; + sizeof(host)); } foundHost = true; break; diff --git a/lib/dns/rdata/in_1/wks_11.c b/lib/dns/rdata/in_1/wks_11.c index 00d09dbda1f..be5755412c8 100644 --- a/lib/dns/rdata/in_1/wks_11.c +++ b/lib/dns/rdata/in_1/wks_11.c @@ -156,8 +156,7 @@ fromtext_in_wks(ARGS_FROMTEXT) { * Lowercase the service string as some getservbyname() are * case sensitive and the database is usually in lowercase. */ - strncpy(service, DNS_AS_STR(token), sizeof(service)); - service[sizeof(service)-1] = '\0'; + strlcpy(service, DNS_AS_STR(token), sizeof(service)); for (i = strlen(service) - 1; i >= 0; i--) if (isupper(service[i]&0xff)) service[i] = tolower(service[i]&0xff);