liboping: Fix some string formatting errors

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
This commit is contained in:
Michael Tremer 2023-03-04 14:33:09 +00:00
parent f0103f6acb
commit d0d758e19f
3 changed files with 74 additions and 1 deletions

View File

@ -5,7 +5,7 @@
name = liboping
version = 1.10.0
release = 3
release = 4
groups = Development/Tools
url = https://noping.cc/

View File

@ -0,0 +1,51 @@
From 609559aa3b257a5eb627717d870dfce336f941ec Mon Sep 17 00:00:00 2001
From: Sergei Trofimovich <slyich@gmail.com>
Date: Mon, 15 Nov 2021 08:05:43 +0000
Subject: [PATCH] src/oping.c: always use "%s"-style format for printf()-style
functions
`ncuses-6.3` added printf-style function attributes and now makes
it easier to catch cases when user input is used in palce of format
string when built with CFLAGS=-Werror=format-security:
oping.c:1265:41: error: format not a string literal and no format arguments [-Werror=format-security]
1265 | hist_symbols_utf8[index]);
| ^~~~~~~~~~~~~~~~~
Let's wrap all the missing places with "%s" format.
---
src/oping.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/src/oping.c b/src/oping.c
index c087c80..af4a0cb 100644
--- a/src/oping.c
+++ b/src/oping.c
@@ -1156,7 +1156,7 @@ static int update_graph_prettyping (ping_context_t *ctx, /* {{{ */
wattron (ctx->window, COLOR_PAIR(color));
if (has_utf8())
- mvwprintw (ctx->window, /* y = */ 3, /* x = */ x + 2, symbol);
+ mvwprintw (ctx->window, /* y = */ 3, /* x = */ x + 2, "%s", symbol);
else
mvwaddch (ctx->window, /* y = */ 3, /* x = */ x + 2, symbolc);
@@ -1262,7 +1262,7 @@ static int update_graph_histogram (ping_context_t *ctx) /* {{{ */
mvwaddch (ctx->window, /* y = */ 3, /* x = */ x + 2, ' ');
else if (has_utf8 ())
mvwprintw (ctx->window, /* y = */ 3, /* x = */ x + 2,
- hist_symbols_utf8[index]);
+ "%s", hist_symbols_utf8[index]);
else
mvwaddch (ctx->window, /* y = */ 3, /* x = */ x + 2,
hist_symbols_acs[index] | A_ALTCHARSET);
@@ -1639,8 +1639,7 @@ static void update_host_hook (pingobj_iter_t *iter, /* {{{ */
HOST_PRINTF ("%zu bytes from %s (%s): icmp_seq=%u ttl=%i ",
data_len, context->host, context->addr,
- sequence, recv_ttl,
- format_qos (recv_qos, recv_qos_str, sizeof (recv_qos_str)));
+ sequence, recv_ttl);
if ((recv_qos != 0) || (opt_send_qos != 0))
{
HOST_PRINTF ("qos=%s ",

View File

@ -0,0 +1,22 @@
--- liboping-1.10.0/src/Makefile.am 2017-05-11 00:32:27.000000000 -0700
+++ liboping-1.10.0/src/Makefile.am.new 2018-07-24 14:29:43.400661398 -0700
@@ -3,7 +3,7 @@
SUBDIRS = mans
if COMPILER_IS_GCC
-AM_CFLAGS = -Wall -Werror
+AM_CFLAGS = -Wall
endif
include_HEADERS = oping.h
--- liboping-1.10.0/src/Makefile.in 2018-07-24 14:30:52.192553951 -0700
+++ liboping-1.10.0/src/Makefile.in.new 2018-07-24 14:30:57.281546003 -0700
@@ -388,7 +388,7 @@
top_srcdir = @top_srcdir@
AUTOMAKE_OPTIONS = foreign no-dependencies
SUBDIRS = mans
-@COMPILER_IS_GCC_TRUE@AM_CFLAGS = -Wall -Werror
+@COMPILER_IS_GCC_TRUE@AM_CFLAGS = -Wall
include_HEADERS = oping.h
lib_LTLIBRARIES = liboping.la