On Tue, 2014-07-01 at 23:12 +0300, Dmitry Kasatkin wrote:

> -/*
> - * Calculate the MD5/SHA1 file digest
> - */
> +static struct crypto_ahash *ima_alloc_atfm(enum hash_algo algo)
> +{
> +     struct crypto_ahash *tfm = ima_ahash_tfm;
> +     int rc;
> +
> +     if ((algo != ima_hash_algo && algo < HASH_ALGO__LAST) || !tfm) {
> +             tfm = crypto_alloc_ahash(hash_algo_name[algo], 0, 0);

In the case where algo isn't the same as ima_hash_algo, won't this
replace the existing ima_ahash_tfm without freeing it?

Mimi

> +             if (!IS_ERR(tfm)) {
> +                     if (algo == ima_hash_algo)
> +                             ima_ahash_tfm = tfm;
> +             } else {
> +                     rc = PTR_ERR(tfm);
> +                     pr_err("Can not allocate %s (reason: %d)\n",
> +                            hash_algo_name[algo], rc);
> +             }
> +     }
> +     return tfm;
> +}
> +
> +static void ima_free_atfm(struct crypto_ahash *tfm)
> +{
> +     if (tfm != ima_ahash_tfm)
> +             crypto_free_ahash(tfm);
> +}



--
To unsubscribe from this list: send the line "unsubscribe linux-crypto" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to