package/liboping: fix build with gcc >= 7
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>
This commit is contained in:
parent
b77600f508
commit
1b47bd987f
@ -1,31 +0,0 @@
|
||||
From 18ca43507b351f339ff23062541ee8d58e813a53 Mon Sep 17 00:00:00 2001
|
||||
From: Florian Forster <ff@octo.it>
|
||||
Date: Sun, 29 Jul 2018 14:34:19 +0200
|
||||
Subject: [PATCH] ping_host_add: Decrease buffer size to make GCC's truncation
|
||||
check happy.
|
||||
|
||||
Fixes: #38
|
||||
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
||||
[Retrieved from:
|
||||
https://github.com/octo/liboping/commit/18ca43507b351f339ff23062541ee8d58e813a53]
|
||||
---
|
||||
src/liboping.c | 6 ++----
|
||||
1 file changed, 2 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/liboping.c b/src/liboping.c
|
||||
index 5253e8c..2470988 100644
|
||||
--- a/src/liboping.c
|
||||
+++ b/src/liboping.c
|
||||
@@ -1636,10 +1636,8 @@ int ping_host_add (pingobj_t *obj, const char *host)
|
||||
}
|
||||
else
|
||||
{
|
||||
- char errmsg[PING_ERRMSG_LEN];
|
||||
-
|
||||
- snprintf (errmsg, PING_ERRMSG_LEN, "Unknown `ai_family': %i", ai_ptr->ai_family);
|
||||
- errmsg[PING_ERRMSG_LEN - 1] = '\0';
|
||||
+ char errmsg[64];
|
||||
+ snprintf (errmsg, sizeof(errmsg), "Unknown `ai_family': %d", ai_ptr->ai_family);
|
||||
|
||||
dprintf ("%s", errmsg);
|
||||
ping_set_error (obj, "getaddrinfo", errmsg);
|
@ -0,0 +1,28 @@
|
||||
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;
|
||||
}
|
||||
|
32
package/liboping/0004-Fix-compile-error-on-GCC-7.patch
Normal file
32
package/liboping/0004-Fix-compile-error-on-GCC-7.patch
Normal file
@ -0,0 +1,32 @@
|
||||
From 3d685bdb1a6c655bce6d36cfd96e084be07cd2b1 Mon Sep 17 00:00:00 2001
|
||||
From: Maurice Smulders <Maurice.Smulders@windtalker.com>
|
||||
Date: Tue, 4 Jan 2022 12:49:36 -0700
|
||||
Subject: [PATCH] Fix compile error on GCC < 7
|
||||
|
||||
[Retrieved from:
|
||||
https://github.com/octo/liboping/pull/64/commits/3d685bdb1a6c655bce6d36cfd96e084be07cd2b1]
|
||||
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
||||
---
|
||||
src/liboping.c | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/src/liboping.c b/src/liboping.c
|
||||
index 9fd8f53..1ccf609 100644
|
||||
--- a/src/liboping.c
|
||||
+++ b/src/liboping.c
|
||||
@@ -203,11 +203,15 @@ static char *sstrerror (int errnum, char *buf, size_t buflen)
|
||||
static void ping_set_error (pingobj_t *obj, const char *function,
|
||||
const char *message)
|
||||
{
|
||||
+#if __GNUC__ >= 7
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wformat-truncation"
|
||||
+#endif
|
||||
snprintf (obj->errmsg, sizeof (obj->errmsg),
|
||||
"%s: %s", function, message);
|
||||
+#if __GNUC__ >= 7
|
||||
#pragma GCC diagnostic pop
|
||||
+#endif
|
||||
obj->errmsg[sizeof (obj->errmsg) - 1] = 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user