diff --git a/src/plugins/unittest/string_test.c b/src/plugins/unittest/string_test.c
index 41b4c61..cbceb8f 100644
--- a/src/plugins/unittest/string_test.c
+++ b/src/plugins/unittest/string_test.c
@@ -750,6 +750,8 @@
     return -1;
 
   /* Verify it against strncpy */
+#if __GNUC__ < 8
+  /* GCC 8 debian flunks this one at compile time */
   strncpy (dst, src, strlen (src));
 
   /* This better not fail but check anyhow */
@@ -758,6 +760,7 @@
     return -1;
   if (indicator != 0)
     return -1;
+#endif
 
   /* limited copy -- strlen src > n, copy up to n */
   err = clib_strncpy (dst, "The price of greatness is responsibility.", 10);
@@ -791,12 +794,15 @@
   if (indicator != 0)
     return -1;
   /* Verify it against strncpy */
+#if __GNUC__ < 8
+  /* GCC 8 debian flunks this one at compile time */
   strncpy (dst, src, strlen (src));
   if (strcmp_s (dst, clib_strnlen (dst, sizeof (dst)), src, &indicator) !=
       EOK)
     return -1;
   if (indicator != 0)
     return -1;
+#endif
 
   /* zero length copy */
   clib_strncpy (old_dst, dst, clib_strnlen (dst, sizeof (dst)));
@@ -1046,6 +1052,8 @@
   if (indicator != 0)
     return -1;
   /* verify it against strncat */
+#if __GNUC__ < 8
+  /* GCC 8 debian flunks this one at compile time */
   strcpy_s (dst, sizeof (dst), s1);
   strncat (dst, s2, 13);
   if (strcmp_s (dst, s1size - 1, "Two things are infinite: the universe ",
@@ -1053,6 +1061,7 @@
     return -1;
   if (indicator != 0)
     return -1;
+#endif
 
   /* negative stuff */
   err = strncat_s (0, 0, 0, 1);
@@ -1169,6 +1178,8 @@
   if (indicator != 0)
     return -1;
   /* verify it against strncat */
+#if __GNUC__ < 8
+  /* GCC 8 debian flunks this one at compile time */
   strcpy_s (dst, sizeof (dst), s1);
   strncat (dst, s2, 13);
   if (strcmp_s (dst, s1size - 1, "Two things are infinite: the universe ",
@@ -1176,6 +1187,7 @@
     return -1;
   if (indicator != 0)
     return -1;
+#endif
 
   /* negative stuff */
   err = clib_strncat (0, 0, 1);
diff --git a/src/vlib/linux/pci.c b/src/vlib/linux/pci.c
index ee3eebf..d31b3c9 100644
--- a/src/vlib/linux/pci.c
+++ b/src/vlib/linux/pci.c
@@ -466,7 +466,7 @@
       clib_memset (&ifr, 0, sizeof ifr);
       clib_memset (&drvinfo, 0, sizeof drvinfo);
       ifr.ifr_data = (char *) &drvinfo;
-      strncpy (ifr.ifr_name, e->d_name, sizeof (ifr.ifr_name) - 1);
+      clib_strncpy (ifr.ifr_name, e->d_name, sizeof (ifr.ifr_name) - 1);
 
       drvinfo.cmd = ETHTOOL_GDRVINFO;
       if (ioctl (fd, SIOCETHTOOL, &ifr) < 0)
@@ -482,7 +482,7 @@
 	continue;
 
       clib_memset (&ifr, 0, sizeof (ifr));
-      strncpy (ifr.ifr_name, e->d_name, sizeof (ifr.ifr_name) - 1);
+      clib_strncpy (ifr.ifr_name, e->d_name, sizeof (ifr.ifr_name) - 1);
 
       if (ioctl (fd, SIOCGIFFLAGS, &ifr) < 0)
 	{
