On Thu, 2015-05-28 at 22:04 +0800, Herbert Xu wrote:

> @@ -1011,55 +966,55 @@ static int __driver_rfc4106_encrypt(struct 
> aead_request *req)
>               *(iv+4+i) = req->iv[i];
>       *((__be32 *)(iv+12)) = counter;
>  
> -     if ((sg_is_last(req->src)) && (sg_is_last(req->assoc))) {
> +     if (sg_is_last(req->src) &&
> +         req->src->offset + req->src->length <= PAGE_SIZE &&
> +         sg_is_last(req->dst) &&
> +         req->dst->offset + req->dst->length <= PAGE_SIZE) {
>               one_entry_in_sg = 1;
>               scatterwalk_start(&src_sg_walk, req->src);
> -             scatterwalk_start(&assoc_sg_walk, req->assoc);
> -             src = scatterwalk_map(&src_sg_walk);
> -             assoc = scatterwalk_map(&assoc_sg_walk);
> +             assoc = scatterwalk_map(&src_sg_walk);
> +             src = assoc + req->assoclen;
>               dst = src;
>               if (unlikely(req->src != req->dst)) {
>                       scatterwalk_start(&dst_sg_walk, req->dst);
> -                     dst = scatterwalk_map(&dst_sg_walk);
> +                     dst = scatterwalk_map(&dst_sg_walk) + req->assoclen;

Herbert,

Quick question.  When src and dst are different, the above code 
leave space for the assoc data in dst.  However, I don't think we copy
over the assoc data from src to dst.
I assume we don't have to do that, right?  If so, we have not
initialized assoc in dst.  This won't be a problem, will it?

Tim


--
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