Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
[linux-2.6-microblaze.git] / crypto / ecdh_helper.c
index 66fcb2e..fca63b5 100644 (file)
@@ -67,6 +67,9 @@ int crypto_ecdh_decode_key(const char *buf, unsigned int len,
        if (secret.type != CRYPTO_KPP_SECRET_TYPE_ECDH)
                return -EINVAL;
 
+       if (unlikely(len < secret.len))
+               return -EINVAL;
+
        ptr = ecdh_unpack_data(&params->curve_id, ptr, sizeof(params->curve_id));
        ptr = ecdh_unpack_data(&params->key_size, ptr, sizeof(params->key_size));
        if (secret.len != crypto_ecdh_key_len(params))