summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike McTernan <mikemcternan@google.com>2022-08-22 22:08:58 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2022-08-22 22:08:58 +0000
commitba6d7230f31c76c8039dd83f8427e54756dd7e64 (patch)
tree0c4bc8ecbc9ba0ef136c9c844c834701d7b50852
parent749d736bf5575f2e4f8fe485a103e1dd9d256854 (diff)
parentc08f589c3940fdef54ad7c02bf379a8fc0df000b (diff)
downloadlibufdt-ba6d7230f31c76c8039dd83f8427e54756dd7e64.tar.gz
Merge "Fix count_phandle_node() / set_phandle_table_entry() equivalence. Fix error path from ufdt_construct() and fdt_string()." am: 28c6744aeb am: 74077f063d am: b86858baa4 am: fe6d426707 am: c08f589c39
Original change: https://android-review.googlesource.com/c/platform/system/libufdt/+/2186596 Change-Id: I0203316c76d98f2775c34cd02e49eec8733904db Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--ufdt_convert.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/ufdt_convert.c b/ufdt_convert.c
index 8a3fb1a..92aecef 100644
--- a/ufdt_convert.c
+++ b/ufdt_convert.c
@@ -258,14 +258,14 @@ static void set_phandle_table_entry(struct ufdt_node *node,
struct ufdt_phandle_table_entry *data,
int *cur) {
if (node == NULL || ufdt_node_tag(node) != FDT_BEGIN_NODE) return;
- int ph = ufdt_node_get_phandle(node);
+ uint32_t ph = ufdt_node_get_phandle(node);
if (ph > 0) {
data[*cur].phandle = ph;
data[*cur].node = node;
(*cur)++;
}
struct ufdt_node **it;
- for_each_node(it, node) set_phandle_table_entry(*it, data, cur);
+ for_each_child(it, node) set_phandle_table_entry(*it, data, cur);
return;
}
@@ -301,6 +301,8 @@ struct ufdt *ufdt_from_fdt(void *fdtp, size_t fdt_size,
}
struct ufdt *res_tree = ufdt_construct(fdtp, pool);
+ if (res_tree == NULL) return NULL;
+
int end_offset;
int start_tag = fdt_next_tag(fdtp, start_offset, &end_offset);
res_tree->root =