kumquat-buildroot/package/liboping/0003-Fix-compile-break-with-GCC-7-buffer-overflow-with-snprintf.patch
Fabrice Fontaine 1b47bd987f 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>
2022-04-21 19:32:08 +02:00

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;
}