diff options
author | Vincent Stehlé <vincent.stehle@freescale.com> | 2015-10-07 15:48:48 +0200 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2015-11-16 17:22:18 -0500 |
commit | 1ca8f8818ba82d7d62cf87dfa3f45e011da62526 (patch) | |
tree | 56d39618f56672bc3e6c9906d5c1fbbb496d4253 /tools/proftool.c | |
parent | 98e73c834467ef6f1d3e9a8102745e16b3128ac1 (diff) |
tools/proftool: fix use-after-free
The read_trace_config() can dereference the line pointer after freeing
it on its error path. Avoid that.
This was found by Coverity Scan.
Signed-off-by: Vincent Stehlé <vincent.stehle@freescale.com>
Cc: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'tools/proftool.c')
-rw-r--r-- | tools/proftool.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/tools/proftool.c b/tools/proftool.c index 9ce7a7796e7..ddf870f66ee 100644 --- a/tools/proftool.c +++ b/tools/proftool.c @@ -432,9 +432,10 @@ static int read_trace_config(FILE *fin) err = regcomp(&line->regex, tok, REG_NOSUB); if (err) { + int r = regex_report_error(&line->regex, err, + "compile", tok); free(line); - return regex_report_error(&line->regex, err, "compile", - tok); + return r; } /* link this new one to the end of the list */ |