Bluetooth: selftest - check for errors when computing ZZ
authorTudor Ambarus <tudor.ambarus@microchip.com>
Thu, 28 Sep 2017 14:14:53 +0000 (17:14 +0300)
committerMarcel Holtmann <marcel@holtmann.org>
Fri, 6 Oct 2017 18:35:47 +0000 (20:35 +0200)
Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
net/bluetooth/selftest.c

index 126bdc5a77a72656c8e92fd744a422ed80fc3d7c..ce99648ed870837d940fe47f3fc144a7c583dae3 100644 (file)
@@ -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;