summaryrefslogtreecommitdiff
path: root/mesh/node.c
diff options
context:
space:
mode:
authorInga Stotland <inga.stotland@intel.com>2020-05-08 17:00:21 -0700
committerBrian Gix <brian.gix@intel.com>2020-05-09 06:45:28 -0700
commit82b2d4cf5e677ba823865d698d0ace7907bb21e0 (patch)
treee4fc4595fc34a840f45ba2e42ff73a6dfcf1264e /mesh/node.c
parent9139f7b7480702b43299d6937553871815c843ed (diff)
downloadbluez-82b2d4cf5e677ba823865d698d0ace7907bb21e0.tar.gz
mesh: On node attach, verify element/model composition only
When attaching an existing node, verify only the "elements" part of device composition, i.e., skip verification of CID/PID/VID, CRPL and features.
Diffstat (limited to 'mesh/node.c')
-rw-r--r--mesh/node.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/mesh/node.c b/mesh/node.c
index acda6d472..e3f9e52e3 100644
--- a/mesh/node.c
+++ b/mesh/node.c
@@ -1378,7 +1378,7 @@ static bool check_req_node(struct managed_obj_request *req)
{
uint8_t node_comp[MAX_MSG_LEN - 2];
uint8_t attach_comp[MAX_MSG_LEN - 2];
-
+ uint16_t offset = 10;
uint16_t node_len = node_generate_comp(req->node, node_comp,
sizeof(node_comp));
@@ -1389,12 +1389,10 @@ static bool check_req_node(struct managed_obj_request *req)
uint16_t attach_len = node_generate_comp(req->attach,
attach_comp, sizeof(attach_comp));
- /* Ignore feature bits in Composition Compare */
- node_comp[8] = 0;
- attach_comp[8] = 0;
-
+ /* Verify only element/models composition */
if (node_len != attach_len ||
- memcmp(node_comp, attach_comp, node_len)) {
+ memcmp(&node_comp[offset], &attach_comp[offset],
+ node_len - offset)) {
l_debug("Failed to verify app's composition data");
return false;
}