From: Adrian Hunter <adrian.hunter@intel.com>
Date: Mon, 31 Jan 2022 07:24:51 +0000 (+0200)
Subject: perf/core: Fix address filter parser for multiple filters
X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=929d8a87f709cb39f56c0b7afcace940e282117e;p=linux.git

perf/core: Fix address filter parser for multiple filters

[ Upstream commit d680ff24e9e14444c63945b43a37ede7cd6958f9 ]

Reset appropriate variables in the parser loop between parsing separate
filters, so that they do not interfere with parsing the next filter.

Fixes: 375637bc524952 ("perf/core: Introduce address range filtering")
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lore.kernel.org/r/20220131072453.2839535-4-adrian.hunter@intel.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
---

diff --git a/kernel/events/core.c b/kernel/events/core.c
index b81652fc2cdd9..62022380ad8d1 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -10530,8 +10530,11 @@ perf_event_parse_addr_filter(struct perf_event *event, char *fstr,
 			}
 
 			/* ready to consume more filters */
+			kfree(filename);
+			filename = NULL;
 			state = IF_STATE_ACTION;
 			filter = NULL;
+			kernel = 0;
 		}
 	}