diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c index 878bf73822449990422cf9011d5a50963e6d7fdb..72a68393859371bf0cafd930ead04c380ce43452 100644 --- a/net/bluetooth/mgmt.c +++ b/net/bluetooth/mgmt.c @@ -5942,6 +5942,9 @@ static bool ltk_is_valid(struct mgmt_ltk_info *key) if (key->master != 0x00 && key->master != 0x01) return false; + if (key->enc_size > sizeof(key->val)) + return false; + switch (key->addr.type) { case BDADDR_LE_PUBLIC: return true;