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