9fb9198f67
...beyond booth-1.0 (commit f2d38ce), including: . support for solely manually managed tickets (9a365f9) . use asciidoctor instead of asciidoc for generating man pages (65e6a6b) - switch to using Python 3 for the tests instead of Python 2 (behind unversioned "python" references; rhbz#1555651) Signed-off-by: Jan Pokorný <jpokorny@redhat.com>
51 lines
1.9 KiB
Diff
51 lines
1.9 KiB
Diff
From d3bf9f5ced41ad0f4e8ae87e80c7e44df4157b61 Mon Sep 17 00:00:00 2001
|
||
From: =?UTF-8?q?Jan=20Pokorn=C3=BD?= <jpokorny@redhat.com>
|
||
Date: Fri, 13 Jul 2018 14:40:07 +0200
|
||
Subject: [PATCH] Refactor: fix "strncpy may miss trailing null byte" warnings
|
||
of GCC 8.1
|
||
MIME-Version: 1.0
|
||
Content-Type: text/plain; charset=UTF-8
|
||
Content-Transfer-Encoding: 8bit
|
||
|
||
Verbatim warning:
|
||
> ‘strncpy’ specified bound 64 equals destination size [-Wstringop-truncation]
|
||
|
||
Signed-off-by: Jan Pokorný <jpokorny@redhat.com>
|
||
---
|
||
src/config.c | 12 ++++++++++--
|
||
1 file changed, 10 insertions(+), 2 deletions(-)
|
||
|
||
diff --git a/src/config.c b/src/config.c
|
||
index 9df5767..e4d36ab 100644
|
||
--- a/src/config.c
|
||
+++ b/src/config.c
|
||
@@ -75,7 +75,10 @@ static void hostname_to_ip(char * hostname)
|
||
|
||
/* Return the first found address */
|
||
if (addr_list[0] != NULL) {
|
||
- strncpy(hostname, inet_ntoa(*addr_list[0]), BOOTH_NAME_LEN);
|
||
+ strncpy(hostname, inet_ntoa(*addr_list[0]), BOOTH_NAME_LEN - 1);
|
||
+ /* buffer overflow will not happen (IPv6 notation < 63 chars),
|
||
+ but suppress the warnings */
|
||
+ hostname[BOOTH_NAME_LEN - 1] = '\0';
|
||
}
|
||
else {
|
||
log_error("no IP addresses found for the host \"%s\"", hostname);
|
||
@@ -106,7 +109,12 @@ static int add_site(char *addr_string, int type)
|
||
site->family = AF_INET;
|
||
site->type = type;
|
||
|
||
- strncpy(site->addr_string, addr_string, sizeof(site->addr_string));
|
||
+ /* buffer overflow will not hapen (we've already checked that
|
||
+ addr_string will fit incl. terminating '\0' above), but
|
||
+ suppress the warnings with copying everything but the boundary
|
||
+ byte, which is valid as-is, since this last byte will be safely
|
||
+ pre-zeroed from the struct booth_config initialization */
|
||
+ strncpy(site->addr_string, addr_string, sizeof(site->addr_string) - 1);
|
||
|
||
if (!(inet_pton(AF_INET, site->addr_string, &site->sa4.sin_addr) > 0) &&
|
||
!(inet_pton(AF_INET6, site->addr_string, &site->sa6.sin6_addr) > 0)) {
|
||
--
|
||
2.18.0.rc2
|
||
|