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é <[email protected]>
Cc: Simon Glass <[email protected]>
---
 tools/proftool.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/tools/proftool.c b/tools/proftool.c
index 9ce7a77..ddf870f 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 */
-- 
2.5.3

_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to