2019-03-22 02:26:13

by Stotland, Inga

[permalink] [raw]
Subject: [PATCH BlueZ] mesh: Fix adding model app key binding

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



2019-03-22 16:38:51

by Gix, Brian

[permalink] [raw]
Subject: RE: [PATCH BlueZ] mesh: Fix adding model app key binding

patch applied

> -----Original Message-----
> From: Stotland, Inga
> Subject: [PATCH BlueZ] mesh: Fix adding model app key binding
>
> 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