summaryrefslogtreecommitdiff
path: root/mesh/model.c
diff options
context:
space:
mode:
authorInga Stotland <inga.stotland@intel.com>2020-02-18 11:30:10 -0800
committerBrian Gix <brian.gix@intel.com>2020-02-18 15:55:30 -0800
commit17516034a67c11b1254fc3abec44bdf9eb4adefd (patch)
treefc2b6eabd914e08f26d0ea053eba5170177cb837 /mesh/model.c
parente594c4e3e862e6220b87f7f5bdf69de10010859d (diff)
downloadbluez-17516034a67c11b1254fc3abec44bdf9eb4adefd.tar.gz
mesh: Fix app payload decryption for virtual labels
This fixes a bug when a virtual label and its size hasn't been passed to a decryption function: instead of always using NULL pointer for label and 0 for lable size, use actual virtual label info if decrypting a payload addressed to a virtual destination.
Diffstat (limited to 'mesh/model.c')
-rw-r--r--mesh/model.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/mesh/model.c b/mesh/model.c
index 072972fda..4e5856292 100644
--- a/mesh/model.c
+++ b/mesh/model.c
@@ -444,8 +444,8 @@ static int app_packet_decrypt(struct mesh_net *net, const uint8_t *data,
continue;
if (old_key && old_key_aid == key_aid) {
- decrypted = mesh_crypto_payload_decrypt(NULL, 0, data,
- size, szmict, src, dst, key_aid,
+ decrypted = mesh_crypto_payload_decrypt(virt, virt_size,
+ data, size, szmict, src, dst, key_aid,
seq, iv_idx, out, old_key);
if (decrypted) {
@@ -457,8 +457,8 @@ static int app_packet_decrypt(struct mesh_net *net, const uint8_t *data,
}
if (new_key && new_key_aid == key_aid) {
- decrypted = mesh_crypto_payload_decrypt(NULL, 0, data,
- size, szmict, src, dst, key_aid,
+ decrypted = mesh_crypto_payload_decrypt(virt, virt_size,
+ data, size, szmict, src, dst, key_aid,
seq, iv_idx, out, new_key);
if (decrypted) {