[Buildroot] [PATCH v1 1/3] package/liboping: add patch to fix gcc-8/gcc-9 snprintf truncation compile failure

Peter Seiderer ps.report at gmx.net
Fri Mar 6 20:10:20 UTC 2020


Add patch from upstream merge request ([1]) to fix fix gcc-8/gcc-9 snprintf
truncation related compile failure (-Wall/-Werror), reported on the
mailing list ([2]).

Fixes:

  liboping.c: In function ‘ping_set_ttl’:
  liboping.c:207:9: error: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size 242 [-Werror=format-truncation=]
    207 |    "%s: %s", function, message);
        |         ^~

[1] https://github.com/octo/liboping/pull/50
[2] http://lists.busybox.net/pipermail/buildroot/2020-March/275861.html

Reported-by: Maik Brenke <Maik.Brenke at continental-corporation.com>
Signed-off-by: Peter Seiderer <ps.report at gmx.net>
---
 ...d-snprintf-truncation-warning-wError.patch | 31 +++++++++++++++++++
 1 file changed, 31 insertions(+)
 create mode 100644 package/liboping/0002-Mitigated-snprintf-truncation-warning-wError.patch

diff --git a/package/liboping/0002-Mitigated-snprintf-truncation-warning-wError.patch b/package/liboping/0002-Mitigated-snprintf-truncation-warning-wError.patch
new file mode 100644
index 0000000000..929d25e22d
--- /dev/null
+++ b/package/liboping/0002-Mitigated-snprintf-truncation-warning-wError.patch
@@ -0,0 +1,31 @@
+From 215003b58c9214c4a3ff5ef44f361887cdbec348 Mon Sep 17 00:00:00 2001
+From: Guillaume Picquet <nelstaar at yahoo.fr>
+Date: Mon, 9 Sep 2019 17:30:47 +0200
+Subject: [PATCH] Mitigated snprintf truncation warning (-wError)
+
+[Upstream: https://github.com/octo/liboping/pull/50/commits/664414123a3fe89984abfa0917946c513bf47163]
+Signed-off-by: Peter Seiderer <ps.report at gmx.net>
+---
+ src/liboping.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/liboping.c b/src/liboping.c
+index a2dfa19..39b0041 100644
+--- a/src/liboping.c
++++ b/src/liboping.c
+@@ -203,9 +203,9 @@ static char *sstrerror (int errnum, char *buf, size_t buflen)
+ static void ping_set_error (pingobj_t *obj, const char *function,
+ 	       	const char *message)
+ {
+-	snprintf (obj->errmsg, sizeof (obj->errmsg),
+-			"%s: %s", function, message);
+-	obj->errmsg[sizeof (obj->errmsg) - 1] = 0;
++	if (snprintf (obj->errmsg, sizeof (obj->errmsg),
++			"%s: %s", function, message) >= sizeof (obj->errmsg))
++		obj->errmsg[sizeof (obj->errmsg) - 1] = 0;
+ }
+ 
+ static void ping_set_errno (pingobj_t *obj, int error_number)
+-- 
+2.25.1
+
-- 
2.25.1



More information about the buildroot mailing list