lkml.org 
[lkml]   [2016]   [Feb]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.16.y-ckt 130/180] crypto: algif_skcipher - Load TX SG list after waiting
    Date
    3.16.7-ckt24 -stable review patch.  If anyone has any objections, please let me know.

    ---8<------------------------------------------------------------

    From: Herbert Xu <herbert@gondor.apana.org.au>

    commit 4f0414e54e4d1893c6f08260693f8ef84c929293 upstream.

    We need to load the TX SG list in sendmsg(2) after waiting for
    incoming data, not before.

    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Tested-by: Dmitry Vyukov <dvyukov@google.com>
    [ luis: backported to 3.16: adjusted context ]
    Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
    ---
    crypto/algif_skcipher.c | 14 +++++++-------
    1 file changed, 7 insertions(+), 7 deletions(-)

    diff --git a/crypto/algif_skcipher.c b/crypto/algif_skcipher.c
    index 83187f497c7c..bb68c92e68c6 100644
    --- a/crypto/algif_skcipher.c
    +++ b/crypto/algif_skcipher.c
    @@ -441,13 +441,6 @@ static int skcipher_recvmsg(struct kiocb *unused, struct socket *sock,
    char __user *from = iov->iov_base;

    while (seglen) {
    - sgl = list_first_entry(&ctx->tsgl,
    - struct skcipher_sg_list, list);
    - sg = sgl->sg;
    -
    - while (!sg->length)
    - sg++;
    -
    used = ctx->used;
    if (!used) {
    err = skcipher_wait_for_data(sk, flags);
    @@ -469,6 +462,13 @@ static int skcipher_recvmsg(struct kiocb *unused, struct socket *sock,
    if (!used)
    goto free;

    + sgl = list_first_entry(&ctx->tsgl,
    + struct skcipher_sg_list, list);
    + sg = sgl->sg;
    +
    + while (!sg->length)
    + sg++;
    +
    ablkcipher_request_set_crypt(&ctx->req, sg,
    ctx->rsgl.sg, used,
    ctx->iv);
    \
     
     \ /
      Last update: 2016-02-04 00:41    [W:4.083 / U:0.384 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site