On Tue, Mar 21, 2017 at 04:00:04PM +0100, Stephan Müller wrote:
> Am Dienstag, 21. März 2017, 14:23:31 CET schrieb Harsh Jain:
>
> Hi Harsh,
>
> > Yes, Driver can figure out when to discard dst SGL but for that Driver
> > has to put checks before accessing dst SGL. Isn't better if AF_ALG
> > sends NULL for dst SGL.
>
> With the code in [1], the first longer patch is planned to be merged after
> the
> memory management changes are agreed upon. That patch contains:
>
> + /* chain the areq TX SGL holding the tag with RX SGL */
> + if (!last_rsgl) {
> + /* no RX SGL present (e.g. only authentication) */
> + sg_init_table(areq->first_rsgl.sgl.sg, 2);
> + sg_chain(areq->first_rsgl.sgl.sg, 2, areq->tsgl);
> + } else {
> + /* RX SGL present */
> + struct af_alg_sgl *sgl_prev = &last_rsgl->sgl;
> +
> + sg_unmark_end(sgl_prev->sg + sgl_prev->npages - 1);
> + sg_chain(sgl_prev->sg, sgl_prev->npages + 1, areq-
> >tsgl);
> + }
>
>
> This code snipped would exactly do what you want: the SGL is always
> initialized. Besides, the code will do an in-place cipher operation.
>
> https://www.spinics.net/lists/linux-crypto/msg24343.html
Even if we fix this one user of the crypto API, new users could
still feed you bogus SG lists. The API does not require the user
to specify a NULL SG list so please fix this in the driver.
We should also strength testmgr so that it provides something
bogus to catch buggy drivers.
Thanks,
--
Email: Herbert Xu <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt