From 22301de7ea5c313eb5ec283ef615e36928ce584b Mon Sep 17 00:00:00 2001
From: Arun S A G <sagarun@gmail.com>
Date: Mon, 10 Sep 2018 08:37:41 -0700
Subject: [PATCH] ArpON gcc 8 fixes
---
src/arpca.c | 3 ++-
src/darpi.c | 12 ++++++++----
src/harpi.c | 12 ++++++++----
src/sarpi.c | 8 ++++++--
src/sig.c | 2 +-
5 files changed, 25 insertions(+), 12 deletions(-)
diff --git a/src/arpca.c b/src/arpca.c
index 0160c7e..fe1afab 100644
--- a/src/arpca.c
+++ b/src/arpca.c
@@ -436,7 +436,8 @@ arpca_add(const struct arp_entry *entry)
interface = opt_getinterface();
/* Copy the interface in the ARP request structure. */
- strncpy(ar.arp_dev, interface, IF_NAMESIZE);
+ strncpy(ar.arp_dev, interface, IF_NAMESIZE -1);
+ ar.arp_dev[IF_NAMESIZE -1] = '\0';
/*
* Overwrite the IP entry in the ARP cache
diff --git a/src/darpi.c b/src/darpi.c
index f4ad134..b3a901c 100644
--- a/src/darpi.c
+++ b/src/darpi.c
@@ -66,17 +66,21 @@ darpi_handler(int op, struct ether_addr *macsrc, struct in_addr *ipsrc,
interface = opt_getinterface();
/* MAC src addr network byte order to string. */
- strncpy(smacsrc, ether_ntoa(macsrc), INTF_ETHERSTRLEN);
+ strncpy(smacsrc, ether_ntoa(macsrc), INTF_ETHERSTRLEN-1);
+ smacsrc[INTF_ETHERSTRLEN-1] = '\0';
/* IP src addr network byte order to string. */
- strncpy(sipsrc, inet_ntoa(*ipsrc), INET_ADDRSTRLEN);
+ strncpy(sipsrc, inet_ntoa(*ipsrc), INET_ADDRSTRLEN-1);
+ sipsrc[INET_ADDRSTRLEN-1] = '\0';
#ifndef NDEBUG
/* MAC dst addr network byte order to string. */
- strncpy(smacdst, ether_ntoa(macdst), INTF_ETHERSTRLEN);
+ strncpy(smacdst, ether_ntoa(macdst), INTF_ETHERSTRLEN-1);
+ smacdst[INTF_ETHERSTRLEN-1] = '\0';
/* IP dst addr network byte order to string. */
- strncpy(sipdst, inet_ntoa(*ipdst), INET_ADDRSTRLEN);
+ strncpy(sipdst, inet_ntoa(*ipdst), INET_ADDRSTRLEN-1);
+ sipdst[INET_ADDRSTRLEN-1] = '\0';
#endif /* !NDEBUG */
/* Check the type of the ARP packet read. */
diff --git a/src/harpi.c b/src/harpi.c
index d981715..66b1139 100644
--- a/src/harpi.c
+++ b/src/harpi.c
@@ -68,17 +68,21 @@ harpi_handler(int op, struct ether_addr *macsrc, struct in_addr *ipsrc,
interface = opt_getinterface();
/* MAC src addr network byte order to string. */
- strncpy(smacsrc, ether_ntoa(macsrc), INTF_ETHERSTRLEN);
+ strncpy(smacsrc, ether_ntoa(macsrc), INTF_ETHERSTRLEN-1);
+ smacsrc[INTF_ETHERSTRLEN-1] = '\0';
/* IP src addr network byte order to string. */
- strncpy(sipsrc, inet_ntoa(*ipsrc), INET_ADDRSTRLEN);
+ strncpy(sipsrc, inet_ntoa(*ipsrc), INET_ADDRSTRLEN-1);
+ sipsrc[INET_ADDRSTRLEN-1] = '\0';
#ifndef NDEBUG
/* MAC dst addr network byte order to string. */
- strncpy(smacdst, ether_ntoa(macdst), INTF_ETHERSTRLEN);
+ strncpy(smacdst, ether_ntoa(macdst), INTF_ETHERSTRLEN-1);
+ smacdst[INTF_ETHERSTRLEN-1] = '\0';
/* IP dst addr network byte order to string. */
- strncpy(sipdst, inet_ntoa(*ipdst), INET_ADDRSTRLEN);
+ strncpy(sipdst, inet_ntoa(*ipdst), INET_ADDRSTRLEN-1);
+ sipdst[INET_ADDRSTRLEN-1] = '\0';
#endif /* !NDEBUG */
/* Check the type of the ARP packet read. */
diff --git a/src/sarpi.c b/src/sarpi.c
index b90104b..8961255 100644
--- a/src/sarpi.c
+++ b/src/sarpi.c
@@ -67,17 +67,21 @@ sarpi_handler(int op, struct ether_addr *macsrc, struct in_addr *ipsrc,
interface = opt_getinterface();
/* MAC src addr network byte order to string. */
- strncpy(smacsrc, ether_ntoa(macsrc), INTF_ETHERSTRLEN);
+ strncpy(smacsrc, ether_ntoa(macsrc), INTF_ETHERSTRLEN-1);
+ smacsrc[INTF_ETHERSTRLEN-1] = '\0';
/* IP src addr network byte order to string. */
- strncpy(sipsrc, inet_ntoa(*ipsrc), INET_ADDRSTRLEN);
+ strncpy(sipsrc, inet_ntoa(*ipsrc), INET_ADDRSTRLEN-1);
+ sipsrc[INET_ADDRSTRLEN-1] = '\0';
#ifndef NDEBUG
/* MAC dst addr network byte order to string. */
strncpy(smacdst, ether_ntoa(macdst), INTF_ETHERSTRLEN);
+ smacdst[INTF_ETHERSTRLEN-1] = '\0';
/* IP dst addr network byte order to string. */
strncpy(sipdst, inet_ntoa(*ipdst), INET_ADDRSTRLEN);
+ sipdst[INET_ADDRSTRLEN-1] = '\0';
#endif /* !NDEBUG */
/* Check the type of the ARP packet read. */
diff --git a/src/sig.c b/src/sig.c
index d2a34cd..a07539e 100644
--- a/src/sig.c
+++ b/src/sig.c
@@ -204,7 +204,7 @@ sig_loop(char **argv, char **envp)
case SIGINT:
/* Remove ^C symbol from the output terminal. */
printf("\r");
- /* FALLTHRU */
+ /* Fallthrough. */
case SIGTERM:
MSG_DEBUG("Caught %s (%d)..", SIG_ITOA(sig), sig);
--
2.17.1