]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Use strlcpy in place where strncpy(s, ...) + s[sizeof(s)-1] = \0; was used
authorOndřej Surý <ondrej@sury.org>
Mon, 19 Nov 2018 06:10:43 +0000 (07:10 +0100)
committerMark Andrews <marka@isc.org>
Wed, 21 Nov 2018 21:11:31 +0000 (08:11 +1100)
(cherry picked from commit 175f06949f5dc9d2c51bdceeeeca334605d20337)

contrib/dlz/drivers/dlz_filesystem_driver.c
lib/dns/rdata/in_1/wks_11.c

index 60f00956cf888b3fb93536f7c58d28001c1dbfa2..a8af12d983decdc0da3b541fe25559e0ce0111c8 100644 (file)
@@ -59,6 +59,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>
@@ -437,12 +438,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[255] = '\0';
+                                                  sizeof(host));
                                        }
                                        foundHost = true;
                                        break;
index 0dc5804ab8ba958cadce8c2a8c91fef5687806de..52f696bc84dbe9363e58bb104809f09a7bae4b8b 100644 (file)
@@ -155,8 +155,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);