Use strlcpy in place where strncpy(s, ...) + s[sizeof(s)-1] = \0; was used

This commit is contained in:
Ondřej Surý 2018-11-19 07:10:43 +01:00
parent aa4ac49bb8
commit 175f06949f
2 changed files with 7 additions and 7 deletions

View file

@ -60,6 +60,7 @@
#include <isc/platform.h>
#include <isc/print.h>
#include <isc/result.h>
#include <isc/string.h>
#include <isc/util.h>
#include <named/globals.h>
@ -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;

View file

@ -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);