mirror of
https://github.com/followmsi/android_kernel_google_msm.git
synced 2024-11-06 23:17:41 +00:00
UPSTREAM: crypto: algif_skcipher - Load TX SG list after waiting
commit 4f0414e54e4d1893c6f08260693f8ef84c929293 upstream. We need to load the TX SG list in sendmsg(2) after waiting for incoming data, not before. Bug: 64386293 Change-Id: Ibb0b7969ee1df314b49462ecd65ce381118d915d Cc: stable@vger.kernel.org Reported-by: Dmitry Vyukov <dvyukov@google.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Tested-by: Dmitry Vyukov <dvyukov@google.com> Signed-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com> Signed-off-by: Willy Tarreau <w@1wt.eu> Signed-off-by: Siqi Lin <siqilin@google.com>
This commit is contained in:
parent
58045cdf8d
commit
05f374ad9e
1 changed files with 7 additions and 7 deletions
|
@ -441,13 +441,6 @@ static int skcipher_recvmsg(struct kiocb *unused, struct socket *sock,
|
||||||
char __user *from = iov->iov_base;
|
char __user *from = iov->iov_base;
|
||||||
|
|
||||||
while (seglen) {
|
while (seglen) {
|
||||||
sgl = list_first_entry(&ctx->tsgl,
|
|
||||||
struct skcipher_sg_list, list);
|
|
||||||
sg = sgl->sg;
|
|
||||||
|
|
||||||
while (!sg->length)
|
|
||||||
sg++;
|
|
||||||
|
|
||||||
used = ctx->used;
|
used = ctx->used;
|
||||||
if (!used) {
|
if (!used) {
|
||||||
err = skcipher_wait_for_data(sk, flags);
|
err = skcipher_wait_for_data(sk, flags);
|
||||||
|
@ -469,6 +462,13 @@ static int skcipher_recvmsg(struct kiocb *unused, struct socket *sock,
|
||||||
if (!used)
|
if (!used)
|
||||||
goto free;
|
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,
|
ablkcipher_request_set_crypt(&ctx->req, sg,
|
||||||
ctx->rsgl.sg, used,
|
ctx->rsgl.sg, used,
|
||||||
ctx->iv);
|
ctx->iv);
|
||||||
|
|
Loading…
Reference in a new issue