From 58b6d9a2efe101e5b80fd708e6f84c7ca779ce93 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Thu, 31 May 2018 20:27:43 -0700 Subject: [PATCH] Fix potential string truncation in strncpy() GCC 8 complains about the string truncation during copy error: 'strncpy' specified bound 16 equals destination size Upstream-Status: Inappropriate [depricated component] Signed-off-by: Khem Raj --- tests/listen-packet.c | 3 ++- tests/listen.c | 3 ++- tests/test2.c | 4 ++-- tests/test3.c | 3 ++- tests/test4.c | 3 ++- tests/test5.c | 3 ++- tests/test6.c | 3 ++- tests/test7.c | 3 ++- 8 files changed, 16 insertions(+), 9 deletions(-) diff --git a/tests/listen-packet.c b/tests/listen-packet.c index e40af81..eae0c71 100644 --- a/tests/listen-packet.c +++ b/tests/listen-packet.c @@ -50,7 +50,8 @@ int main(int argc, char **argv) { return 1; } - strncpy(req.ifr_name, iface, IF_NAMESIZE); + strncpy(req.ifr_name, iface, IF_NAMESIZE - 1); + req.ifr_name[IF_NAMESIZE - 1] = '\0'; ret = ioctl(sd, SIOCGIFINDEX, &req); if (ret < 0) perror("ioctl: SIOCGIFINDEX"); diff --git a/tests/listen.c b/tests/listen.c index 75c320b..5ce1ed9 100644 --- a/tests/listen.c +++ b/tests/listen.c @@ -47,7 +47,8 @@ int main(int argc, char **argv) { return 1; } - strncpy(req.ifr_name, iface, IFNAMSIZ); + strncpy(req.ifr_name, iface, IFNAMSIZ - 1); + req.ifr_name[IF_NAMESIZE - 1] = '\0'; ret = ioctl(sd, SIOCGIFHWADDR, &req); if (ret < 0) perror("ioctl: SIOCGIFHWADDR"); diff --git a/tests/test2.c b/tests/test2.c index 58eb74b..5d02838 100644 --- a/tests/test2.c +++ b/tests/test2.c @@ -45,8 +45,8 @@ int main(int argc, char **argv) { perror("socket"); return 1; } - - strncpy(req.ifr_name, argv[1] ?: "wpan0", IF_NAMESIZE); + strncpy(req.ifr_name, argv[1] ?: "wpan0", IF_NAMESIZE - 1); + req.ifr_name[IF_NAMESIZE - 1] = '\0'; ret = ioctl(sd, SIOCGIFHWADDR, &req); if (ret < 0) perror("ioctl: SIOCGIFHWADDR"); diff --git a/tests/test3.c b/tests/test3.c index fb36627..2f50a5a 100644 --- a/tests/test3.c +++ b/tests/test3.c @@ -46,7 +46,8 @@ int main(int argc, char **argv) { return 1; } - strncpy(req.ifr_name, argv[1] ?: "wpan0", IF_NAMESIZE); + strncpy(req.ifr_name, argv[1] ?: "wpan0", IF_NAMESIZE - 1); + req.ifr_name[IF_NAMESIZE - 1] = '\0'; ret = ioctl(sd, SIOCGIFHWADDR, &req); if (ret < 0) perror("ioctl: SIOCGIFHWADDR"); diff --git a/tests/test4.c b/tests/test4.c index 33c274c..8737149 100644 --- a/tests/test4.c +++ b/tests/test4.c @@ -46,7 +46,8 @@ int main(int argc, char **argv) { return 1; } - strncpy(req.ifr_name, argv[1] ?: "wpan0", IF_NAMESIZE); + strncpy(req.ifr_name, argv[1] ?: "wpan0", IF_NAMESIZE - 1); + req.ifr_name[IF_NAMESIZE - 1] = '\0'; ret = ioctl(sd, SIOCGIFHWADDR, &req); if (ret < 0) perror("ioctl: SIOCGIFHWADDR"); diff --git a/tests/test5.c b/tests/test5.c index 4439dfa..28db562 100644 --- a/tests/test5.c +++ b/tests/test5.c @@ -45,7 +45,8 @@ int main(int argc, char **argv) { return 1; } - strncpy(req.ifr_name, argv[1] ?: "wpan0", IF_NAMESIZE); + strncpy(req.ifr_name, argv[1] ?: "wpan0", IF_NAMESIZE - 1); + req.ifr_name[IF_NAMESIZE - 1] = '\0'; ret = ioctl(sd, SIOCGIFADDR, &req); if (ret < 0) { perror("ioctl: SIOCGIFADDR"); diff --git a/tests/test6.c b/tests/test6.c index e375bfb..ce7de59 100644 --- a/tests/test6.c +++ b/tests/test6.c @@ -45,7 +45,8 @@ int main(int argc, char **argv) { return 1; } - strncpy(req.ifr_name, argv[1] ?: "wpan0", IF_NAMESIZE); + strncpy(req.ifr_name, argv[1] ?: "wpan0", IF_NAMESIZE - 1); + req.ifr_name[IF_NAMESIZE - 1] = '\0'; ret = ioctl(sd, SIOCGIFADDR, &req); if (ret < 0) { perror("ioctl: SIOCGIFADDR"); diff --git a/tests/test7.c b/tests/test7.c index e9a5a55..37da22d 100644 --- a/tests/test7.c +++ b/tests/test7.c @@ -58,7 +58,8 @@ int main(int argc, char **argv) { if (ret) perror("setsockopt"); - strncpy(req.ifr_name, argv[1] ?: "wpan0", IF_NAMESIZE); + strncpy(req.ifr_name, argv[1] ?: "wpan0", IF_NAMESIZE - 1); + req.ifr_name[IF_NAMESIZE - 1] = '\0'; ret = ioctl(sd, SIOCGIFHWADDR, &req); if (ret < 0) perror("ioctl: SIOCGIFHWADDR"); -- 2.17.1