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;