You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.0 KiB
40 lines
1.0 KiB
From 699deffdd881bf4759f3fcc4d6ee3e018e4c266e Mon Sep 17 00:00:00 2001 |
|
From: Tom Li <biergaizi2009@gmail.com> |
|
Date: Fri, 18 Apr 2014 20:06:18 -0400 |
|
Subject: [PATCH] fix memory leak in classify code |
|
|
|
If a system has no pci devices the opening of the pci bus directory in |
|
rebuild_irq_db will fail, leading to a memory leak. Fix it by freeing the list |
|
we create in that function always on exit |
|
|
|
Reported-by: Tom Li <biergaizi2009@gmail.com> |
|
Signed-off-by: Neil Horman <nhorman@tuxdriver.com> |
|
Signed-off-by: Tom Li <biergaizi2009@gmail.com> |
|
--- |
|
classify.c | 3 ++- |
|
1 file changed, 2 insertions(+), 1 deletion(-) |
|
|
|
diff --git a/classify.c b/classify.c |
|
index 1867a94..94b53b8 100644 |
|
--- a/classify.c |
|
+++ b/classify.c |
|
@@ -465,7 +465,7 @@ void rebuild_irq_db(void) |
|
|
|
devdir = opendir(SYSDEV_DIR); |
|
if (!devdir) |
|
- return; |
|
+ goto free; |
|
|
|
do { |
|
entry = readdir(devdir); |
|
@@ -482,6 +482,7 @@ void rebuild_irq_db(void) |
|
|
|
for_each_irq(tmp_irqs, add_missing_irq, NULL); |
|
|
|
+free: |
|
g_list_free_full(tmp_irqs, free); |
|
|
|
} |
|
-- |
|
2.4.3 |
|
|
|
|