summaryrefslogtreecommitdiffstats
path: root/meta-openembedded/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-Fix-potential-string-truncation-in-strncpy.patch
blob: e621d8f2a8bee8ef95bb11be89bf1cfae63f1b37 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
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

OpenPOWER on IntegriCloud