diff --git a/fix-format-security.patch b/fix-format-security.patch new file mode 100644 index 0000000..4bb3fe6 --- /dev/null +++ b/fix-format-security.patch @@ -0,0 +1,77 @@ +From f8bdd0e64284d841544fd3ebe22f4652902ba8d2 Mon Sep 17 00:00:00 2001 +From: Sergei Trofimovich +Date: Tue, 9 Nov 2021 22:24:17 +0000 +Subject: [PATCH] ui/ui.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: + + ui/ui.c:714:16: error: format not a string literal and no format arguments [-Werror=format-security] + 714 | printw(copy_to); + | ^~~~~~~ + +Let's wrap all the missing places with "%s" format. +--- + ui/ui.c | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/ui/ui.c b/ui/ui.c +index 1be8f95..6ff3305 100644 +--- a/ui/ui.c ++++ b/ui/ui.c +@@ -26,7 +26,7 @@ void show_frame() + while(strlen(top) != (size_t)COLS - 1) { + snprintf(top + strlen(top), COLS - strlen(top), " "); + } +- mvprintw(0, 0, top); ++ mvprintw(0, 0, "%s", top); + for(i = 0; i < LINES; i++) { + mvprintw(i, 0, " "); + mvprintw(i, COLS - 1, " "); +@@ -42,7 +42,7 @@ void show_footer() + snprintf(footer + strlen(footer), COLS - strlen(footer), " "); + } + attrset(COLOR_PAIR(4)); +- mvprintw(LINES - 1, 0, footer); ++ mvprintw(LINES - 1, 0, "%s", footer); + } + + char * check_control_in_sleep_input(int max_len, int column_offest, int line_offset) +@@ -331,7 +331,7 @@ void print_assigned_objects_string(irq_t *irq, int *line_offset) + char assigned_to[128] = "\0"; + for_each_int(irq->assigned_to, copy_assigned_obj, assigned_to); + assigned_to[strlen(assigned_to) - 2] = '\0'; +- mvprintw(*line_offset, 36, assigned_to); ++ mvprintw(*line_offset, 36, "%s", assigned_to); + } + + void print_irq_line(irq_t *irq, void *data) +@@ -566,7 +566,7 @@ void settings() + uint8_t sleep_input_offset = strlen(info) + 3; + snprintf(info + strlen(info), 128 - strlen(info), "%" PRIu64 "\n", setup.sleep); + attrset(COLOR_PAIR(1)); +- mvprintw(2, 3, info); ++ mvprintw(2, 3, "%s", info); + print_all_cpus(); + + int user_input = 1; +@@ -664,7 +664,7 @@ void display_tree_node_irqs(irq_t *irq, void *data) + char indent[32] = " \0"; + snprintf(indent + strlen(indent), 32 - strlen(indent), "%s", (char *)data); + attrset(COLOR_PAIR(3)); +- printw("%sIRQ %lu, IRQs since last rebalance %lu\n", ++ printw("%sIRQ %u, IRQs since last rebalance %lu\n", + indent, irq->vector, irq->diff); + } + +@@ -711,7 +711,7 @@ void display_tree_node(cpu_node_t *node, void *data) + default: + break; + } +- printw(copy_to); ++ printw("%s", copy_to); + if(g_list_length(node->irqs) > 0) { + for_each_irq(node->irqs, display_tree_node_irqs, indent); + } diff --git a/irqbalance-1.6.0-env-file-path.patch b/irqbalance-1.6.0-env-file-path.patch deleted file mode 100644 index 9423071..0000000 --- a/irqbalance-1.6.0-env-file-path.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/misc/irqbalance.service 2020-06-02 14:33:35.794592546 +0200 -+++ b/misc/irqbalance.service 2020-06-02 14:34:08.678922108 +0200 -@@ -5,7 +5,7 @@ - ConditionVirtualization=!container - - [Service] --EnvironmentFile=/path/to/irqbalance.env -+EnvironmentFile=/etc/sysconfig/irqbalance - ExecStart=/usr/sbin/irqbalance --foreground $IRQBALANCE_ARGS - CapabilityBoundingSet= - NoNewPrivileges=yes diff --git a/irqbalance.spec b/irqbalance.spec index edf5e70..b631c07 100644 --- a/irqbalance.spec +++ b/irqbalance.spec @@ -1,13 +1,15 @@ Name: irqbalance Version: 1.8.0 -Release: 3%{?dist} +Release: 4%{?dist} Epoch: 2 Summary: IRQ balancing daemon License: GPLv2 -Url: https://github.com/Irqbalance/irqbalance -Source0: https://github.com/Irqbalance/irqbalance/archive/irqbalance-%{version}.tar.gz +URL: https://github.com/Irqbalance/irqbalance +Source0: %{url}/archive/v%{version}/irqbalance-%{version}.tar.gz Source1: irqbalance.sysconfig +Patch0: %{url}/commit/f8bdd0e64284d841544fd3ebe22f4652902ba8d2.patch#/fix-format-security.patch + BuildRequires: autoconf automake libtool libcap-ng BuildRequires: glib2-devel pkgconf libcap-ng-devel @@ -28,7 +30,7 @@ irqbalance is a daemon that evenly distributes IRQ load across multiple CPUs for enhanced performance. %prep -%setup -q +%autosetup -p1 %build ./autogen.sh @@ -62,6 +64,9 @@ make check %systemd_postun_with_restart irqbalance.service %changelog +* Sun Jul 24 2022 Leigh Scott - 2:1.8.0-4 +- Fix compile issue + * Thu Jul 21 2022 Fedora Release Engineering - 2:1.8.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild