On Tue, Sep 15, 2015 at 06:58:01PM +0530, Lokesh Vutla wrote:
>
> +     assoc = &req->src[0];
> +     sg_init_table(dd->in_sgl, nsg + 1);
> +     if (assoclen) {
> +             if (omap_aes_check_aligned(assoc, assoclen)) {
> +                     dd->sgs_copied |= AES_ASSOC_DATA_COPIED;
> +                     pages = get_order(alen);
> +                     buf_in = (void *)__get_free_pages(GFP_ATOMIC, pages);

It would be better if you used a list of pages rather than n
contiguous pages which is likely to fail.

> +                     buf_in = sg_virt(assoc);

This is bogus as assoc may not be mapped.

> +     if (req->cryptlen) {
> +             input = scatterwalk_ffwd(tmp, req->src, req->assoclen);

scatterwalk_ffwd may return tmp so tmp must not be on the stack
unless you stop using input after the function returns.  Also tmp
must not be reused by a subsequent call to scatterwalk_ffwd.

Cheers,
-- 
Email: Herbert Xu <herb...@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" 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