File uninitialized.patch of Package irqbalance

From 33c857d17b9af8a8a4dd785b8d511ba1f5d0bd88 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Dirk=20M=C3=BCller?= <dirk@dmllr.de>
Date: Tue, 18 Oct 2022 23:08:31 +0200
Subject: [PATCH] Avoid uninitialized read
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

irq_info struct is initialized on stack so the members need to
be initalized to avoid a crash on uninitialized pointer dereference.

Signed-off-by: Dirk Müller <dirk@dmllr.de>
---
 classify.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/classify.c b/classify.c
index 3858754..5d3a9f0 100644
--- a/classify.c
+++ b/classify.c
@@ -259,7 +259,7 @@ static gint compare_ints(gconstpointer a, gconstpointer b)
 
 static void __add_banned_irq(int irq, GList **list)
 {
-	struct irq_info find, *new;
+	struct irq_info find = {0}, *new;
 	GList *entry;
 
 	find.irq = irq;
@@ -394,7 +394,7 @@ get_numa_node:
 
 void remove_one_irq_from_db(int irq)
 {
-	struct irq_info find, *tmp;
+	struct irq_info find = {0}, *tmp;
 	GList *entry = NULL;
 
 	find.irq = irq;
@@ -646,7 +646,7 @@ static void build_one_dev_entry(const char *dirname, int build_irq)
 	struct dirent *entry;
 	DIR *msidir;
 	int irqnum;
-	struct irq_info hint;
+	struct irq_info hint = {0};
 	char path[PATH_MAX];
 	char devpath[PATH_MAX];
 
@@ -818,7 +818,7 @@ void for_each_irq(GList *list, void (*cb)(struct irq_info *info, void *data), vo
 struct irq_info *get_irq_info(int irq)
 {
 	GList *entry;
-	struct irq_info find;
+	struct irq_info find = {0};
 
 	find.irq = irq;
 	entry = g_list_find_custom(interrupts_db, &find, compare_ints);
@@ -832,7 +832,7 @@ struct irq_info *get_irq_info(int irq)
 void migrate_irq(GList **from, GList **to, struct irq_info *info)
 {
 	GList *entry;
-	struct irq_info find, *tmp;
+	struct irq_info find = {0}, *tmp;
 
 	find.irq = info->irq;
 	entry = g_list_find_custom(*from, &find, compare_ints);
-- 
2.38.0

openSUSE Build Service is sponsored by