Revert "crypto: algif_skcipher - Do not dereference ctx without socket lock"
authorBen Hutchings <ben@decadent.org.uk>
Sun, 6 Mar 2016 22:07:37 +0000 (22:07 +0000)
committerBen Hutchings <ben@decadent.org.uk>
Fri, 1 Apr 2016 00:54:30 +0000 (01:54 +0100)
This reverts commit c54ddfbb1b691d77c52b76ca6e13ca7082eb3b82, which
was a poorly backported version of commit
6454c2b83f719057069777132b13949e4c6b6350 upstream.  The small part I
was able to backport makes no sense by itself.

Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
crypto/algif_skcipher.c

index da5d4ed..45fa6bd 100644 (file)
@@ -249,11 +249,8 @@ static int skcipher_sendmsg(struct kiocb *unused, struct socket *sock,
 {
        struct sock *sk = sock->sk;
        struct alg_sock *ask = alg_sk(sk);
 {
        struct sock *sk = sock->sk;
        struct alg_sock *ask = alg_sk(sk);
-       struct sock *psk = ask->parent;
-       struct alg_sock *pask = alg_sk(psk);
        struct skcipher_ctx *ctx = ask->private;
        struct skcipher_ctx *ctx = ask->private;
-       struct ablkcipher_tfm *skc = pask->private;
-       struct crypto_ablkcipher *tfm = skc->base;
+       struct crypto_ablkcipher *tfm = crypto_ablkcipher_reqtfm(&ctx->req);
        unsigned ivsize = crypto_ablkcipher_ivsize(tfm);
        struct skcipher_sg_list *sgl;
        struct af_alg_control con = {};
        unsigned ivsize = crypto_ablkcipher_ivsize(tfm);
        struct skcipher_sg_list *sgl;
        struct af_alg_control con = {};