lkml.org 
[lkml]   [2016]   [Jan]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.2.y-ckt 178/268] crypto: algif_skcipher - sendmsg SG marking is off by one
    Date
    4.2.8-ckt3 -stable review patch.  If anyone has any objections, please let me know.

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

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

    commit 202736d99b7f29279db9da61587f11a08a04a9c6 upstream.

    We mark the end of the SG list in sendmsg and sendpage and unmark
    it on the next send call. Unfortunately the unmarking in sendmsg
    is off-by-one, leading to an SG list that is too short.

    Fixes: 0f477b655a52 ("crypto: algif - Mark sgl end at the end of data")
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Kamal Mostafa <kamal@canonical.com>
    ---
    crypto/algif_skcipher.c | 3 ++-
    1 file changed, 2 insertions(+), 1 deletion(-)

    diff --git a/crypto/algif_skcipher.c b/crypto/algif_skcipher.c
    index 1a0fe4f..9565568 100644
    --- a/crypto/algif_skcipher.c
    +++ b/crypto/algif_skcipher.c
    @@ -392,7 +392,8 @@ static int skcipher_sendmsg(struct socket *sock, struct msghdr *msg,

    sgl = list_entry(ctx->tsgl.prev, struct skcipher_sg_list, list);
    sg = sgl->sg;
    - sg_unmark_end(sg + sgl->cur);
    + if (sgl->cur)
    + sg_unmark_end(sg + sgl->cur - 1);
    do {
    i = sgl->cur;
    plen = min_t(int, len, PAGE_SIZE);
    --
    1.9.1
    \
     
     \ /
      Last update: 2016-01-27 22:41    [W:4.103 / U:0.860 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site