diff options
| -rw-r--r-- | dhcpcd.c | 4 | ||||
| -rw-r--r-- | dhcpcd.h | 10 |
2 files changed, 8 insertions, 6 deletions
@@ -648,7 +648,9 @@ main(int argc, char **argv) } #endif - gethostname(options->hostname + 1, sizeof(options->hostname)); + gethostname(options->hostname + 1, HOSTNAME_MAX_LEN); + /* Ensure that the hostname is NULL terminated */ + options->hostname[HOSTNAME_MAX_LEN + 1] = '\0'; if (strcmp(options->hostname + 1, "(none)") == 0 || strcmp(options->hostname + 1, "localhost") == 0) options->hostname[1] = '\0'; @@ -82,12 +82,12 @@ struct options { char script[PATH_MAX]; char pidfile[PATH_MAX]; - char hostname[HOSTNAME_MAX_LEN + 1]; + char hostname[HOSTNAME_MAX_LEN + 2]; int fqdn; - uint8_t vendorclassid[VENDORCLASSID_MAX_LEN + 1]; - char clientid[CLIENTID_MAX_LEN + 1]; - uint8_t userclass[USERCLASS_MAX_LEN + 1]; - uint8_t vendor[VENDOR_MAX_LEN + 1]; + uint8_t vendorclassid[VENDORCLASSID_MAX_LEN + 2]; + char clientid[CLIENTID_MAX_LEN + 2]; + uint8_t userclass[USERCLASS_MAX_LEN + 2]; + uint8_t vendor[VENDOR_MAX_LEN + 2]; size_t blacklist_len; in_addr_t *blacklist; |
