diff mbox series

libtracefs: Do not free filter regex if it was not created in update_filter()

Message ID 20210609092422.65edc8c2@oasis.local.home (mailing list archive)
State Accepted
Commit d9cf5bbb168c450f57f7e602608c283a77003e78
Headers show
Series libtracefs: Do not free filter regex if it was not created in update_filter() | expand

Commit Message

Steven Rostedt June 9, 2021, 1:24 p.m. UTC
From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>

If the filter is NULL and reset is set in update_filter(), the filter
regex is not created, in which case it must not be freed, as the call to
regfree() does not handle a case of an uninitialized regex.

Fixes: 8f26581f ("libtracefs: Allow filter be NULL if RESET flag is set")
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
---
 src/tracefs-tools.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/src/tracefs-tools.c b/src/tracefs-tools.c
index 993fb3c..f202a15 100644
--- a/src/tracefs-tools.c
+++ b/src/tracefs-tools.c
@@ -816,7 +816,8 @@  static int update_filter(const char *filter_path, int *fd,
 	}
 
  out_free:
-	regfree(&func_filter.re);
+	if (filter)
+		regfree(&func_filter.re);
 	free_func_list(func_list);
  out:
 	pthread_mutex_unlock(lock);