From b89114b3faf1f91131c32792e2880e35d2131143 Mon Sep 17 00:00:00 2001 From: Vadim Yanitskiy Date: Wed, 9 Sep 2020 04:51:04 +0700 Subject: logging: fix memleak in log_target_create_file() Change-Id: If16d8c6417698bbb5cf87716f9507c7256aeaecb --- src/logging.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/logging.c b/src/logging.c index 80ff72ca..db04cf7e 100644 --- a/src/logging.c +++ b/src/logging.c @@ -915,8 +915,10 @@ struct log_target *log_target_create_file(const char *fname) target->type = LOG_TGT_TYPE_FILE; target->tgt_file.out = fopen(fname, "a"); - if (!target->tgt_file.out) + if (!target->tgt_file.out) { + log_target_destroy(target); return NULL; + } target->output = _file_output; @@ -966,6 +968,8 @@ void log_target_destroy(struct log_target *target) #if (!EMBEDDED) switch (target->type) { case LOG_TGT_TYPE_FILE: + if (target->tgt_file.out == NULL) + break; fclose(target->tgt_file.out); target->tgt_file.out = NULL; break; -- cgit v1.2.3