logging: fix memleak in log_target_create_file()
Change-Id: If16d8c6417698bbb5cf87716f9507c7256aeaecb
diff --git a/src/logging.c b/src/logging.c
index 80ff72c..db04cf7 100644
--- a/src/logging.c
+++ b/src/logging.c
@@ -915,8 +915,10 @@
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 @@
#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;