summaryrefslogtreecommitdiff
path: root/ufdt_overlay.c
diff options
context:
space:
mode:
authorSzuWei Lin <szuweilin@google.com>2017-04-07 18:56:13 +0800
committerSzuWei Lin <szuweilin@google.com>2017-04-10 03:12:15 +0000
commit70107c8f5c65bc9798d8f6b7f5b580997d0aca19 (patch)
tree15b82b50d8419412e59559fb0f6c8a6e44b584d6 /ufdt_overlay.c
parent1661eb958a0f7b4f9ebcf0a73257019d97e52901 (diff)
downloadlibufdt-70107c8f5c65bc9798d8f6b7f5b580997d0aca19.tar.gz
Fix memory and file leak
Bug: 35652061 Test: valgrind --leak-check=yes --show-reachable=yes ufdt_apply_overlay ... and result no leak Change-Id: Iec0fe77468d2fdf6c692209cd9571c02f96e2e44
Diffstat (limited to 'ufdt_overlay.c')
-rw-r--r--ufdt_overlay.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/ufdt_overlay.c b/ufdt_overlay.c
index b595c4f..05f949f 100644
--- a/ufdt_overlay.c
+++ b/ufdt_overlay.c
@@ -625,10 +625,10 @@ struct fdt_header *ufdt_apply_overlay(struct fdt_header *main_fdt_header,
return NULL;
}
- struct ufdt *main_tree, *overlay_tree;
+ struct ufdt *main_tree = NULL;
+ struct ufdt *overlay_tree = NULL;
main_tree = fdt_to_ufdt(main_fdt_header, main_fdt_size);
-
overlay_tree = fdt_to_ufdt(overlay_fdtp, overlay_size);
int err = ufdt_overlay_apply(main_tree, overlay_tree, overlay_size);
@@ -642,13 +642,15 @@ struct fdt_header *ufdt_apply_overlay(struct fdt_header *main_fdt_header,
goto fail;
}
- ufdt_destruct(main_tree);
ufdt_destruct(overlay_tree);
+ ufdt_destruct(main_tree);
+
return out_fdt_header;
fail:
- ufdt_destruct(main_tree);
ufdt_destruct(overlay_tree);
+ ufdt_destruct(main_tree);
dto_free(out_fdt_header);
+
return NULL;
}