From 58b6d9a2efe101e5b80fd708e6f84c7ca779ce93 Mon Sep 17 00:00:00 2001
|
From: Khem Raj <raj.khem@gmail.com>
|
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 <raj.khem@gmail.com>
|
---
|
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
|