mesh: Reply error if appkey added for wrong netkey
authorIsak Westin <isak.westin@loytec.com>
Fri, 23 Sep 2022 11:31:49 +0000 (13:31 +0200)
committerAyush Garg <ayush.garg@samsung.com>
Mon, 15 May 2023 09:25:55 +0000 (14:55 +0530)
If a known appkey is added for a different netkey, the status reply
should be Invalid NetKey.

Signed-off-by: Manika Shrivastava <manika.sh@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
mesh/appkey.c

index c9450da..a4bf49b 100644 (file)
@@ -295,7 +295,9 @@ int appkey_key_add(struct mesh_net *net, uint16_t net_idx, uint16_t app_idx,
 
        key = l_queue_find(app_keys, match_key_index, L_UINT_TO_PTR(app_idx));
        if (key) {
-               if (memcmp(new_key, key->key, 16) == 0)
+               if (key->net_idx != net_idx)
+                       return MESH_STATUS_INVALID_NETKEY;
+               else if (memcmp(new_key, key->key, 16) == 0)
                        return MESH_STATUS_SUCCESS;
                else
                        return MESH_STATUS_IDX_ALREADY_STORED;