summaryrefslogtreecommitdiff
path: root/net/bluetooth/selftest.c
diff options
context:
space:
mode:
authorTudor Ambarus <tudor.ambarus@microchip.com>2017-09-28 17:14:53 +0300
committerMarcel Holtmann <marcel@holtmann.org>2017-10-06 20:35:47 +0200
commit3814baf3f2473226e479fc1f4f48d01de2ce0a7b (patch)
tree8533378b5fb2280507b60effbb5f19b59fa11137 /net/bluetooth/selftest.c
parenta297641610963bbb238ea77b32a2e958c4f7b184 (diff)
downloadlwn-3814baf3f2473226e479fc1f4f48d01de2ce0a7b.tar.gz
lwn-3814baf3f2473226e479fc1f4f48d01de2ce0a7b.zip
Bluetooth: selftest - check for errors when computing ZZ
Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'net/bluetooth/selftest.c')
-rw-r--r--net/bluetooth/selftest.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/net/bluetooth/selftest.c b/net/bluetooth/selftest.c
index 126bdc5a77a7..ce99648ed870 100644
--- a/net/bluetooth/selftest.c
+++ b/net/bluetooth/selftest.c
@@ -143,7 +143,7 @@ static int __init test_ecdh_sample(struct crypto_kpp *tfm, const u8 priv_a[32],
const u8 pub_b[64], const u8 dhkey[32])
{
u8 *tmp, *dhkey_a, *dhkey_b;
- int ret = 0;
+ int ret;
tmp = kmalloc(64, GFP_KERNEL);
if (!tmp)
@@ -152,8 +152,13 @@ static int __init test_ecdh_sample(struct crypto_kpp *tfm, const u8 priv_a[32],
dhkey_a = &tmp[0];
dhkey_b = &tmp[32];
- compute_ecdh_secret(tfm, pub_b, priv_a, dhkey_a);
- compute_ecdh_secret(tfm, pub_a, priv_b, dhkey_b);
+ ret = compute_ecdh_secret(tfm, pub_b, priv_a, dhkey_a);
+ if (ret)
+ goto out;
+
+ ret = compute_ecdh_secret(tfm, pub_a, priv_b, dhkey_b);
+ if (ret)
+ goto out;
if (memcmp(dhkey_a, dhkey, 32)) {
ret = -EINVAL;