From e1af0efd6fbe75042f10fab7c9c33fd738d09ad7 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Micha=C5=82=20Lowas-Rzechonek?= Date: Thu, 6 Aug 2020 16:21:08 +0200 Subject: [PATCH] mesh: Allow deleting non-existing net key When deleting a non-existing key, first check that it doesn't exist (and return success), then verify it's not the last key we have. Change-Id: I70f686bb3ab175270d6d4cb4059d7408ff34ec49 Signed-off-by: anuj.bhumiya --- mesh/net.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mesh/net.c b/mesh/net.c index 6d340b6..7a1dadd 100644 --- a/mesh/net.c +++ b/mesh/net.c @@ -798,15 +798,15 @@ int mesh_net_del_key(struct mesh_net *net, uint16_t idx) if (!net) return MESH_STATUS_UNSPECIFIED_ERROR; - /* Cannot remove primary key */ - if (l_queue_length(net->subnets) <= 1) - return MESH_STATUS_CANNOT_REMOVE; - subnet = l_queue_find(net->subnets, match_key_index, L_UINT_TO_PTR(idx)); if (!subnet) return MESH_STATUS_SUCCESS; + /* Cannot remove primary key */ + if (l_queue_length(net->subnets) <= 1) + return MESH_STATUS_CANNOT_REMOVE; + /* Delete associated app keys */ appkey_delete_bound_keys(net, idx); -- 2.7.4