tree data BUGFIX leafref links opaque node read (#2170)
This patch fixes invalid reads in case of usage with opaq data nodes
diff --git a/src/tree_data.c b/src/tree_data.c
index b125f3b..affa568 100644
--- a/src/tree_data.c
+++ b/src/tree_data.c
@@ -3376,7 +3376,7 @@
LY_LIST_FOR(tree, sibling) {
LYD_TREE_DFS_BEGIN(sibling, elem) {
- if (elem->schema->nodetype & LYD_NODE_TERM) {
+ if (elem->schema && (elem->schema->nodetype & LYD_NODE_TERM)) {
leafref_node = (struct lyd_node_term *)elem;
leaf_schema = (struct lysc_node_leaf *)elem->schema;
diff --git a/src/tree_data_new.c b/src/tree_data_new.c
index ab48161..9a257bf 100644
--- a/src/tree_data_new.c
+++ b/src/tree_data_new.c
@@ -2026,7 +2026,7 @@
}
LYD_TREE_DFS_BEGIN(tree, node) {
- if (node->schema->nodetype & LYD_NODE_INNER) {
+ if (node->schema && (node->schema->nodetype & LYD_NODE_INNER)) {
LY_CHECK_GOTO(ret = lyd_new_implicit_r(node, lyd_node_child_p(node), NULL, NULL, &node_when, NULL,
NULL, implicit_options, diff), cleanup);
}