This fixes the situation when a new app key binding is being added to a model and the list of bindings does not exist yet. If the list does not exist, it is created and the binding is added to it. Also, remove unnecessary memory alloc check when model subscriptions are added. --- mesh/model.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mesh/model.c b/mesh/model.c index 80c30edba..a632d80e1 100644 --- a/mesh/model.c +++ b/mesh/model.c @@ -522,6 +522,9 @@ static void model_unbind_idx(struct mesh_node *node, struct mesh_model *mod, static void model_bind_idx(struct mesh_node *node, struct mesh_model *mod, uint16_t idx) { + if (!mod->bindings) + mod->bindings = l_queue_new(); + l_queue_push_tail(mod->bindings, L_UINT_TO_PTR(idx)); l_debug("Add %4.4x to model %8.8x", idx, mod->id); @@ -689,8 +692,6 @@ static int add_sub(struct mesh_net *net, struct mesh_model *mod, if (!mod->subs) mod->subs = l_queue_new(); - if (!mod->subs) - return MESH_STATUS_STORAGE_FAIL; if (l_queue_find(mod->subs, simple_match, L_UINT_TO_PTR(grp))) /* Group already exists */ -- 2.17.2