+++ /dev/null
-From cdc63fe259c70a8a5304aa07087650ebf4ee6b5d Mon Sep 17 00:00:00 2001
-From: Philippe Gerum <rpm@xenomai.org>
-Date: Wed, 24 Oct 2018 11:28:49 +0200
-Subject: [PATCH] demos/posix: prevent unterminated destination buffer with
- strncpy()
-
-GCC 8.x introduced -Wstringop-truncation to help detecting likely
-unwanted outcomes of strncpy(dst, src, n), such as omitting the NUL
-character into the destination buffer whenever n < sizeof(src).
-
-Fix unsafe strncpy() calls when we do expect a null-terminated
-destination buffer.
-
-Signed-off-by: Philippe Gerum <rpm@xenomai.org>
-Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
-[Retrieved from:
-https://gitlab.denx.de/Xenomai/xenomai/commit/cdc63fe259c70a8a5304aa07087650ebf4ee6b5d]
----
- demo/posix/cobalt/can-rtt.c | 4 ++--
- demo/posix/cobalt/eth_p_all.c | 3 ++-
- demo/posix/cyclictest/cyclictest.c | 4 ++--
- 3 files changed, 6 insertions(+), 5 deletions(-)
-
-diff --git a/demo/posix/cobalt/can-rtt.c b/demo/posix/cobalt/can-rtt.c
-index 61cad05e5..dd212d804 100644
---- a/demo/posix/cobalt/can-rtt.c
-+++ b/demo/posix/cobalt/can-rtt.c
-@@ -248,7 +248,7 @@ int main(int argc, char *argv[])
- return -1;
- }
-
-- strncpy(ifr.ifr_name, rxdev, IFNAMSIZ);
-+ namecpy(ifr.ifr_name, rxdev);
- printf("RX rxsock=%d, ifr_name=%s\n", rxsock, ifr.ifr_name);
-
- if (ioctl(rxsock, SIOCGIFINDEX, &ifr) < 0) {
-@@ -282,7 +282,7 @@ int main(int argc, char *argv[])
- goto failure1;
- }
-
-- strncpy(ifr.ifr_name, txdev, IFNAMSIZ);
-+ namecpy(ifr.ifr_name, txdev);
- printf("TX txsock=%d, ifr_name=%s\n", txsock, ifr.ifr_name);
-
- if (ioctl(txsock, SIOCGIFINDEX, &ifr) < 0) {
-diff --git a/demo/posix/cobalt/eth_p_all.c b/demo/posix/cobalt/eth_p_all.c
-index 6ac12ab3e..91aef9fbd 100644
---- a/demo/posix/cobalt/eth_p_all.c
-+++ b/demo/posix/cobalt/eth_p_all.c
-@@ -40,6 +40,7 @@
- #include <net/if.h>
- #include <arpa/inet.h>
- #include <netinet/ether.h>
-+#include <boilerplate/ancillaries.h>
-
- char buffer[10*1024];
- int sock;
-@@ -72,7 +73,7 @@ int main(int argc, char *argv[])
- if (argc > 1) {
- struct ifreq ifr;
-
-- strncpy(ifr.ifr_name, argv[1], IFNAMSIZ);
-+ namecpy(ifr.ifr_name, argv[1]);
- if (ioctl(sock, SIOCGIFINDEX, &ifr) < 0) {
- perror("cannot get interface index");
- close(sock);
-diff --git a/demo/posix/cyclictest/cyclictest.c b/demo/posix/cyclictest/cyclictest.c
-index ebe5461db..76983bd02 100644
---- a/demo/posix/cyclictest/cyclictest.c
-+++ b/demo/posix/cyclictest/cyclictest.c
-@@ -1353,7 +1353,7 @@ static void process_options (int argc, char *argv[], int max_cpus)
- case 'F':
- case OPT_FIFO:
- use_fifo = 1;
-- strncpy(fifopath, optarg, strlen(optarg));
-+ strncpy(fifopath, optarg, sizeof(fifopath) - 1);
- break;
-
- case 'H':
-@@ -1458,7 +1458,7 @@ static void process_options (int argc, char *argv[], int max_cpus)
- case 'T':
- case OPT_TRACER:
- tracetype = CUSTOM;
-- strncpy(tracer, optarg, sizeof(tracer));
-+ strncpy(tracer, optarg, sizeof(tracer) - 1);
- break;
- case 'u':
- case OPT_UNBUFFERED:
---
-2.18.1
-