diff options
author | Inga Stotland <inga.stotland@intel.com> | 2020-02-18 11:30:10 -0800 |
---|---|---|
committer | Brian Gix <brian.gix@intel.com> | 2020-02-18 15:55:30 -0800 |
commit | 17516034a67c11b1254fc3abec44bdf9eb4adefd (patch) | |
tree | fc2b6eabd914e08f26d0ea053eba5170177cb837 /mesh/model.c | |
parent | e594c4e3e862e6220b87f7f5bdf69de10010859d (diff) | |
download | bluez-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.c | 8 |
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) { |