From 0ad9ee080a7cd8037c341067cc67a84e32e69fea Mon Sep 17 00:00:00 2001 From: Maurice Smulders Date: Thu, 30 Dec 2021 10:45:42 -0700 Subject: [PATCH 1/2] Fix compile break with GCC 7+ - buffer overflow with snprintf --- 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; } From 3d685bdb1a6c655bce6d36cfd96e084be07cd2b1 Mon Sep 17 00:00:00 2001 From: Maurice Smulders Date: Tue, 4 Jan 2022 12:49:36 -0700 Subject: [PATCH 2/2] Fix compile error on GCC < 7 --- 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; }