1b47bd987f
Replace first patch (which is not in master after nearly 4 years) with a new set of pending patches to fix the following build failure with gcc >= 7: 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); | ^~ ...... 829 | sstrerror (ret, errbuf, sizeof (errbuf))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ liboping.c:206:2: note: 'snprintf' output between 15 and 270 bytes into a destination of size 256 206 | snprintf (obj->errmsg, sizeof (obj->errmsg), | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | "%s: %s", function, message); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Fixes: - http://autobuild.buildroot.org/results/31083354e9064b2deef86917d67e92a88af0fa46 Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
29 lines
1020 B
Diff
29 lines
1020 B
Diff
From 0ad9ee080a7cd8037c341067cc67a84e32e69fea Mon Sep 17 00:00:00 2001
|
|
From: Maurice Smulders <Maurice.Smulders@windtalker.com>
|
|
Date: Thu, 30 Dec 2021 10:45:42 -0700
|
|
Subject: [PATCH] Fix compile break with GCC 7+ - buffer overflow with snprintf
|
|
|
|
[Retrieved from:
|
|
https://github.com/octo/liboping/pull/64/commits/0ad9ee080a7cd8037c341067cc67a84e32e69fea]
|
|
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
|
---
|
|
src/liboping.c | 3 +++
|
|
1 file changed, 3 insertions(+)
|
|
|
|
diff --git a/src/liboping.c b/src/liboping.c
|
|
index bf9e059..9fd8f53 100644
|
|
--- a/src/liboping.c
|
|
+++ b/src/liboping.c
|
|
@@ -203,8 +203,11 @@ static char *sstrerror (int errnum, char *buf, size_t buflen)
|
|
static void ping_set_error (pingobj_t *obj, const char *function,
|
|
const char *message)
|
|
{
|
|
+#pragma GCC diagnostic push
|
|
+#pragma GCC diagnostic ignored "-Wformat-truncation"
|
|
snprintf (obj->errmsg, sizeof (obj->errmsg),
|
|
"%s: %s", function, message);
|
|
+#pragma GCC diagnostic pop
|
|
obj->errmsg[sizeof (obj->errmsg) - 1] = 0;
|
|
}
|
|
|