Critical patch applied On Thu, 2019-03-21 at 00:32 -0700, Inga Stotland wrote: > This fixes vendor model initialization based on node properties > collected during Join() method call. > --- > mesh/node.c | 15 +++++++++------ > 1 file changed, 9 insertions(+), 6 deletions(-) > > diff --git a/mesh/node.c b/mesh/node.c > index 761a67af4..999d3b8c0 100644 > --- a/mesh/node.c > +++ b/mesh/node.c > @@ -1177,17 +1177,20 @@ static void add_model_from_properties(struct node_element *ele, > static void add_vendor_model_from_properties(struct node_element *ele, > struct l_dbus_message_iter *property) > { > - struct { > - uint16_t v; > - uint16_t m; > - } id_pair; > + struct l_dbus_message_iter ids; > + uint16_t v; > + uint16_t m; > > if (!ele->models) > ele->models = l_queue_new(); > > - while (l_dbus_message_iter_next_entry(property, &id_pair)) { > + if (!l_dbus_message_iter_get_variant(property, "a(qq)", &ids)) > + return; > + > + while (l_dbus_message_iter_next_entry(&ids, &v, &m)) { > struct mesh_model *mod; > - mod = mesh_model_vendor_new(ele->idx, id_pair.v, id_pair.m); > + > + mod = mesh_model_vendor_new(ele->idx, v, m); > l_queue_push_tail(ele->models, mod); > } > }