Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2231256/?format=api
{ "id": 2231256, "url": "http://patchwork.ozlabs.org/api/patches/2231256/?format=api", "web_url": "http://patchwork.ozlabs.org/project/ubuntu-kernel/patch/f52a25786368b9aafaec419c304a1f337e8e2cc9.1777550836.git.massimiliano.pellizzer@canonical.com/", "project": { "id": 15, "url": "http://patchwork.ozlabs.org/api/projects/15/?format=api", "name": "Ubuntu Kernel", "link_name": "ubuntu-kernel", "list_id": "kernel-team.lists.ubuntu.com", "list_email": "kernel-team@lists.ubuntu.com", "web_url": null, "scm_url": null, "webscm_url": null, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<f52a25786368b9aafaec419c304a1f337e8e2cc9.1777550836.git.massimiliano.pellizzer@canonical.com>", "list_archive_url": null, "date": "2026-04-30T12:30:21", "name": "[SRU,N,2/8] crypto: algif_aead - use memcpy_sglist() instead of null skcipher", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "03d9b5a529f9e32fbdf56235bc330cfefa50b237", "submitter": { "id": 89057, "url": "http://patchwork.ozlabs.org/api/people/89057/?format=api", "name": "Massimiliano Pellizzer", "email": "massimiliano.pellizzer@canonical.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/ubuntu-kernel/patch/f52a25786368b9aafaec419c304a1f337e8e2cc9.1777550836.git.massimiliano.pellizzer@canonical.com/mbox/", "series": [ { "id": 502299, "url": "http://patchwork.ozlabs.org/api/series/502299/?format=api", "web_url": "http://patchwork.ozlabs.org/project/ubuntu-kernel/list/?series=502299", "date": "2026-04-30T12:30:20", "name": "CVE-2026-31431", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/502299/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2231256/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2231256/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<kernel-team-bounces@lists.ubuntu.com>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (4096-bit key;\n unprotected) header.d=canonical.com header.i=@canonical.com\n header.a=rsa-sha256 header.s=20251003 header.b=RtE1nfLK;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.ubuntu.com\n (client-ip=185.125.189.65; helo=lists.ubuntu.com;\n envelope-from=kernel-team-bounces@lists.ubuntu.com;\n receiver=patchwork.ozlabs.org)" ], "Received": [ "from lists.ubuntu.com (lists.ubuntu.com [185.125.189.65])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g5tp06rnlz23h2\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 30 Apr 2026 22:31:36 +1000 (AEST)", "from localhost ([127.0.0.1] helo=lists.ubuntu.com)\n\tby lists.ubuntu.com with esmtp (Exim 4.86_2)\n\t(envelope-from <kernel-team-bounces@lists.ubuntu.com>)\n\tid 1wIQYC-0004cM-AH; Thu, 30 Apr 2026 12:31:28 +0000", "from smtp-relay-internal-0.internal ([10.131.114.225]\n helo=smtp-relay-internal-0.canonical.com)\n by lists.ubuntu.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.86_2) (envelope-from <massimiliano.pellizzer@canonical.com>)\n id 1wIQY9-0004W3-7y\n for kernel-team@lists.ubuntu.com; Thu, 30 Apr 2026 12:31:25 +0000", "from mail-wm1-f70.google.com (mail-wm1-f70.google.com\n [209.85.128.70])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n (No client certificate requested)\n by smtp-relay-internal-0.canonical.com (Postfix) with ESMTPS id 0F17C3F427\n for <kernel-team@lists.ubuntu.com>; Thu, 30 Apr 2026 12:31:25 +0000 (UTC)", "by mail-wm1-f70.google.com with SMTP id\n 5b1f17b1804b1-48a55ecc249so5849975e9.1\n for <kernel-team@lists.ubuntu.com>; Thu, 30 Apr 2026 05:31:25 -0700 (PDT)", "from tuxedo-infinitybook.ts.net\n (net-93-71-66-38.cust.vodafonedsl.it. [93.71.66.38])\n by smtp.gmail.com with ESMTPSA id\n 5b1f17b1804b1-48a81ed6bafsm103695005e9.2.2026.04.30.05.31.22\n for <kernel-team@lists.ubuntu.com>\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Thu, 30 Apr 2026 05:31:23 -0700 (PDT)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com;\n s=20251003; t=1777552285;\n bh=QQh8V0kUTqYOsqutcXq05MXKOgpNcdZwTCi9kE5s7Z0=;\n h=From:To:Subject:Date:Message-ID:In-Reply-To:References:\n MIME-Version;\n b=RtE1nfLKCqV4H5vMCmMlejgg3mqukylC+lp1QzUtndeS1lpTerOnazC6e0ZaV5I9L\n pbML4Yd000u3AD0OknlcAQPTi1t5XQDGNnC9Ux2dDf6k0XtF43B2eX52qI9RMw5GWA\n DDBJzqFzVIRFxBYZcXXEvSKjyJMKWKp0gXt52x3QKBc/OmHcylyWzCSJkV5Gs+YcnA\n Cini6lx0H1x0MkgomylYUaQYZyRACEtiXy/zXzru4jLOVCCGRaYaA1emCSrnJRAyI+\n Jv7di/AyGGYhdmbBWLrZr7b6Xl4ThI85n61/l0xRA4LSlxf64puyRB5xsvz4q8zRY0\n G9kXdnoGk7DV/yXpIt+890JSFaP7hdumQ6//j3mvHidkEpYTu3rS60UtBxJyAwAHVz\n ixxBhCx6re22FA8zJTdwOpiiR0/nK3R76tnux5wogiyy+pbZx8fX5e3OJ0vkphCl+1\n oQz4W8IA922/MopBeokkCZ66ZDdLA42dXJdSWcbHXV4oyAiHggb/qv3RpBngol3Jrt\n d8uZ/cxuL3CJf9sjHbTVE4iN2dINM+h3d5iepsPUuuX7gq/JLVR0rkW0RdtDC3FmyR\n UXY4MzdYROwtDD8q22E+Na8LkJew1cKYU3Buic5nLm1YiSVpKYYllKZRLKkznoA6Fd\n MJyUcIW4ANwnNIsI7fYReyR4=", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1777552284; x=1778157084;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to\n :cc:subject:date:message-id:reply-to;\n bh=QQh8V0kUTqYOsqutcXq05MXKOgpNcdZwTCi9kE5s7Z0=;\n b=NXDAu7mGk8367KUZXThtlKcZCFx8DI7Ncs7Iplbfn9vr5sCbb/3T1siXD6AOIREfZq\n K7CTWjk1T4lHKBlsx6XX4xC0C+9MRuL0//KYPzgjjPeg1bFVIPd8cqATeKE5mDJPhMNm\n nKLSl+vJpWyL0hVp85vWRUmbsHHc6KniSm7k1YRH2baJbsykDC3ABm9X1mS6vYSu+3dg\n D+daL4B8v+YA6gWW761vDCOoThx5BEB7v5teyCD0XkZt5rmoQbl4WtS19WyACeGbNFet\n Jh6HRAT3Mrpxt1p6/LleAk9hJsvzK45e2qvnMezGRysFtZph8UrhCvzRPOxZ7g+qt5aL\n YJlA==", "X-Gm-Message-State": "AOJu0Yx6D6sBQO4goKovdCj99NXiZX0WeW2RcblyDZ9JKxf0WTEeU5ZV\n rN7QgtLB/7ltVDXQQNHTvSlVkC052F4ZqEoqEy7p/eWaPhwZl2waQAn2sqyyz9+xY8aCVDK5nTm\n WGg0Q9bPK8E4b35+SsG0KJiX/ALxXYKPbigjBzvF1xO8euovrjdNXVe5ulEOVxRMRmMcQThuVpE\n ELgxBJFehkUDBjRw==", "X-Gm-Gg": "AeBDievONqVJaHTIrbAQUI97x/ZrQyHO67f7F4/2wlCuZlLOGmSVl5ULRf4W+xOcvUT\n 3niTAK7ATAAK5jstqM4vlS515WYG3lFvTUMMZFHNaKKbPUs4520JsbFBlIVsB3iB5mzoTSKDp3j\n 0pCJv0tEarFsk7Y/2BFehZ42O8oR/U+PI5dO/I6KlfiZ/ofVwxdVVG5487RvEi1KWC37UjpWu15\n rKB92Scus/cLBlLw+d9+J+355fOtJU3JUAVLBka/p4OGQN48hk8QUoPIX50PbaG4sKwc5c3Ce63\n uIRioH4PPntRcwvGInEctyplnFode7MkF+hawL3o8u7lzMihKqQUcSa6pZ2cKBXVlKppFdumVYW\n GNbSOG2kkJElxaVWHRZ7dC2ZJlTMRs/Rgz8DP7S/YNkIAbwy0YVFi2jQVOUMN6RTBE8iRqeVax3\n lUOvfkj42w9vRuhM3MRI43ydUx3zjSoOnricLGTZUE4RKgFDlnL/kx0TckR56SU0I1267Ndr71F\n rNRHnKq/XlSMzSVSuCaz5s=", "X-Received": [ "by 2002:a05:600c:4f47:b0:488:b239:77ec with SMTP id\n 5b1f17b1804b1-48a8451d08amr43174635e9.17.1777552284125;\n Thu, 30 Apr 2026 05:31:24 -0700 (PDT)", "by 2002:a05:600c:4f47:b0:488:b239:77ec with SMTP id\n 5b1f17b1804b1-48a8451d08amr43174065e9.17.1777552283471;\n Thu, 30 Apr 2026 05:31:23 -0700 (PDT)" ], "From": "Massimiliano Pellizzer <massimiliano.pellizzer@canonical.com>", "To": "kernel-team@lists.ubuntu.com", "Subject": "[SRU][N][PATCH 2/8] crypto: algif_aead - use memcpy_sglist() instead\n of null skcipher", "Date": "Thu, 30 Apr 2026 14:30:21 +0200", "Message-ID": "\n <f52a25786368b9aafaec419c304a1f337e8e2cc9.1777550836.git.massimiliano.pellizzer@canonical.com>", "X-Mailer": "git-send-email 2.53.0", "In-Reply-To": "<cover.1777550836.git.massimiliano.pellizzer@canonical.com>", "References": "\n <177754965576.503496.12142658280614619991@tuxedo-infinitybook.public>\n <cover.1777550836.git.massimiliano.pellizzer@canonical.com>", "MIME-Version": "1.0", "X-BeenThere": "kernel-team@lists.ubuntu.com", "X-Mailman-Version": "2.1.20", "Precedence": "list", "List-Id": "Kernel team discussions <kernel-team.lists.ubuntu.com>", "List-Unsubscribe": "<https://lists.ubuntu.com/mailman/options/kernel-team>,\n <mailto:kernel-team-request@lists.ubuntu.com?subject=unsubscribe>", "List-Archive": "<https://lists.ubuntu.com/archives/kernel-team>", "List-Post": "<mailto:kernel-team@lists.ubuntu.com>", "List-Help": "<mailto:kernel-team-request@lists.ubuntu.com?subject=help>", "List-Subscribe": "<https://lists.ubuntu.com/mailman/listinfo/kernel-team>,\n <mailto:kernel-team-request@lists.ubuntu.com?subject=subscribe>", "Content-Type": "text/plain; charset=\"utf-8\"", "Content-Transfer-Encoding": "base64", "Errors-To": "kernel-team-bounces@lists.ubuntu.com", "Sender": "\"kernel-team\" <kernel-team-bounces@lists.ubuntu.com>" }, "content": "From: Eric Biggers <ebiggers@google.com>\n\ncommit f2804d0eee8ddd57aa79d0b82872b74c21e1b69b upstream.\n\nFor copying data between two scatterlists, just use memcpy_sglist()\ninstead of the so-called \"null skcipher\". This is much simpler.\n\nSigned-off-by: Eric Biggers <ebiggers@google.com>\nSigned-off-by: Herbert Xu <herbert@gondor.apana.org.au>\nSigned-off-by: Eric Biggers <ebiggers@kernel.org>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n(cherry picked from commit 18313726440135c43cebeb267aef5ad21a2f43e7 linux-6.12.y)\nCVE-2026-31431\nSigned-off-by: Massimiliano Pellizzer <massimiliano.pellizzer@canonical.com>\n---\n crypto/Kconfig | 1 -\n crypto/algif_aead.c | 101 ++++++++------------------------------------\n 2 files changed, 18 insertions(+), 84 deletions(-)", "diff": "diff --git a/crypto/Kconfig b/crypto/Kconfig\nindex 44661c2e30ca..4b6362105499 100644\n--- a/crypto/Kconfig\n+++ b/crypto/Kconfig\n@@ -1439,7 +1439,6 @@ config CRYPTO_USER_API_AEAD\n \tdepends on NET\n \tselect CRYPTO_AEAD\n \tselect CRYPTO_SKCIPHER\n-\tselect CRYPTO_NULL\n \tselect CRYPTO_USER_API\n \thelp\n \t Enable the userspace interface for AEAD cipher algorithms.\ndiff --git a/crypto/algif_aead.c b/crypto/algif_aead.c\nindex 7d58cbbce4af..79b016a899a1 100644\n--- a/crypto/algif_aead.c\n+++ b/crypto/algif_aead.c\n@@ -27,7 +27,6 @@\n #include <crypto/scatterwalk.h>\n #include <crypto/if_alg.h>\n #include <crypto/skcipher.h>\n-#include <crypto/null.h>\n #include <linux/init.h>\n #include <linux/list.h>\n #include <linux/kernel.h>\n@@ -36,19 +35,13 @@\n #include <linux/net.h>\n #include <net/sock.h>\n \n-struct aead_tfm {\n-\tstruct crypto_aead *aead;\n-\tstruct crypto_sync_skcipher *null_tfm;\n-};\n-\n static inline bool aead_sufficient_data(struct sock *sk)\n {\n \tstruct alg_sock *ask = alg_sk(sk);\n \tstruct sock *psk = ask->parent;\n \tstruct alg_sock *pask = alg_sk(psk);\n \tstruct af_alg_ctx *ctx = ask->private;\n-\tstruct aead_tfm *aeadc = pask->private;\n-\tstruct crypto_aead *tfm = aeadc->aead;\n+\tstruct crypto_aead *tfm = pask->private;\n \tunsigned int as = crypto_aead_authsize(tfm);\n \n \t/*\n@@ -64,27 +57,12 @@ static int aead_sendmsg(struct socket *sock, struct msghdr *msg, size_t size)\n \tstruct alg_sock *ask = alg_sk(sk);\n \tstruct sock *psk = ask->parent;\n \tstruct alg_sock *pask = alg_sk(psk);\n-\tstruct aead_tfm *aeadc = pask->private;\n-\tstruct crypto_aead *tfm = aeadc->aead;\n+\tstruct crypto_aead *tfm = pask->private;\n \tunsigned int ivsize = crypto_aead_ivsize(tfm);\n \n \treturn af_alg_sendmsg(sock, msg, size, ivsize);\n }\n \n-static int crypto_aead_copy_sgl(struct crypto_sync_skcipher *null_tfm,\n-\t\t\t\tstruct scatterlist *src,\n-\t\t\t\tstruct scatterlist *dst, unsigned int len)\n-{\n-\tSYNC_SKCIPHER_REQUEST_ON_STACK(skreq, null_tfm);\n-\n-\tskcipher_request_set_sync_tfm(skreq, null_tfm);\n-\tskcipher_request_set_callback(skreq, CRYPTO_TFM_REQ_MAY_SLEEP,\n-\t\t\t\t NULL, NULL);\n-\tskcipher_request_set_crypt(skreq, src, dst, len, NULL);\n-\n-\treturn crypto_skcipher_encrypt(skreq);\n-}\n-\n static int _aead_recvmsg(struct socket *sock, struct msghdr *msg,\n \t\t\t size_t ignored, int flags)\n {\n@@ -93,9 +71,7 @@ static int _aead_recvmsg(struct socket *sock, struct msghdr *msg,\n \tstruct sock *psk = ask->parent;\n \tstruct alg_sock *pask = alg_sk(psk);\n \tstruct af_alg_ctx *ctx = ask->private;\n-\tstruct aead_tfm *aeadc = pask->private;\n-\tstruct crypto_aead *tfm = aeadc->aead;\n-\tstruct crypto_sync_skcipher *null_tfm = aeadc->null_tfm;\n+\tstruct crypto_aead *tfm = pask->private;\n \tunsigned int i, as = crypto_aead_authsize(tfm);\n \tstruct af_alg_async_req *areq;\n \tstruct af_alg_tsgl *tsgl, *tmp;\n@@ -223,11 +199,8 @@ static int _aead_recvmsg(struct socket *sock, struct msghdr *msg,\n \t\t *\t v\t v\n \t\t * RX SGL: AAD || PT || Tag\n \t\t */\n-\t\terr = crypto_aead_copy_sgl(null_tfm, tsgl_src,\n-\t\t\t\t\t areq->first_rsgl.sgl.sgt.sgl,\n-\t\t\t\t\t processed);\n-\t\tif (err)\n-\t\t\tgoto free;\n+\t\tmemcpy_sglist(areq->first_rsgl.sgl.sgt.sgl, tsgl_src,\n+\t\t\t processed);\n \t\taf_alg_pull_tsgl(sk, processed, NULL, 0);\n \t} else {\n \t\t/*\n@@ -241,12 +214,8 @@ static int _aead_recvmsg(struct socket *sock, struct msghdr *msg,\n \t\t * RX SGL: AAD || CT ----+\n \t\t */\n \n-\t\t /* Copy AAD || CT to RX SGL buffer for in-place operation. */\n-\t\terr = crypto_aead_copy_sgl(null_tfm, tsgl_src,\n-\t\t\t\t\t areq->first_rsgl.sgl.sgt.sgl,\n-\t\t\t\t\t outlen);\n-\t\tif (err)\n-\t\t\tgoto free;\n+\t\t/* Copy AAD || CT to RX SGL buffer for in-place operation. */\n+\t\tmemcpy_sglist(areq->first_rsgl.sgl.sgt.sgl, tsgl_src, outlen);\n \n \t\t/* Create TX SGL for tag and chain it to RX SGL. */\n \t\tareq->tsgl_entries = af_alg_count_tsgl(sk, processed,\n@@ -379,7 +348,7 @@ static int aead_check_key(struct socket *sock)\n \tint err = 0;\n \tstruct sock *psk;\n \tstruct alg_sock *pask;\n-\tstruct aead_tfm *tfm;\n+\tstruct crypto_aead *tfm;\n \tstruct sock *sk = sock->sk;\n \tstruct alg_sock *ask = alg_sk(sk);\n \n@@ -393,7 +362,7 @@ static int aead_check_key(struct socket *sock)\n \n \terr = -ENOKEY;\n \tlock_sock_nested(psk, SINGLE_DEPTH_NESTING);\n-\tif (crypto_aead_get_flags(tfm->aead) & CRYPTO_TFM_NEED_KEY)\n+\tif (crypto_aead_get_flags(tfm) & CRYPTO_TFM_NEED_KEY)\n \t\tgoto unlock;\n \n \tatomic_dec(&pask->nokey_refcnt);\n@@ -454,54 +423,22 @@ static struct proto_ops algif_aead_ops_nokey = {\n \n static void *aead_bind(const char *name, u32 type, u32 mask)\n {\n-\tstruct aead_tfm *tfm;\n-\tstruct crypto_aead *aead;\n-\tstruct crypto_sync_skcipher *null_tfm;\n-\n-\ttfm = kzalloc(sizeof(*tfm), GFP_KERNEL);\n-\tif (!tfm)\n-\t\treturn ERR_PTR(-ENOMEM);\n-\n-\taead = crypto_alloc_aead(name, type, mask);\n-\tif (IS_ERR(aead)) {\n-\t\tkfree(tfm);\n-\t\treturn ERR_CAST(aead);\n-\t}\n-\n-\tnull_tfm = crypto_get_default_null_skcipher();\n-\tif (IS_ERR(null_tfm)) {\n-\t\tcrypto_free_aead(aead);\n-\t\tkfree(tfm);\n-\t\treturn ERR_CAST(null_tfm);\n-\t}\n-\n-\ttfm->aead = aead;\n-\ttfm->null_tfm = null_tfm;\n-\n-\treturn tfm;\n+\treturn crypto_alloc_aead(name, type, mask);\n }\n \n static void aead_release(void *private)\n {\n-\tstruct aead_tfm *tfm = private;\n-\n-\tcrypto_free_aead(tfm->aead);\n-\tcrypto_put_default_null_skcipher();\n-\tkfree(tfm);\n+\tcrypto_free_aead(private);\n }\n \n static int aead_setauthsize(void *private, unsigned int authsize)\n {\n-\tstruct aead_tfm *tfm = private;\n-\n-\treturn crypto_aead_setauthsize(tfm->aead, authsize);\n+\treturn crypto_aead_setauthsize(private, authsize);\n }\n \n static int aead_setkey(void *private, const u8 *key, unsigned int keylen)\n {\n-\tstruct aead_tfm *tfm = private;\n-\n-\treturn crypto_aead_setkey(tfm->aead, key, keylen);\n+\treturn crypto_aead_setkey(private, key, keylen);\n }\n \n static void aead_sock_destruct(struct sock *sk)\n@@ -510,8 +447,7 @@ static void aead_sock_destruct(struct sock *sk)\n \tstruct af_alg_ctx *ctx = ask->private;\n \tstruct sock *psk = ask->parent;\n \tstruct alg_sock *pask = alg_sk(psk);\n-\tstruct aead_tfm *aeadc = pask->private;\n-\tstruct crypto_aead *tfm = aeadc->aead;\n+\tstruct crypto_aead *tfm = pask->private;\n \tunsigned int ivlen = crypto_aead_ivsize(tfm);\n \n \taf_alg_pull_tsgl(sk, ctx->used, NULL, 0);\n@@ -524,10 +460,9 @@ static int aead_accept_parent_nokey(void *private, struct sock *sk)\n {\n \tstruct af_alg_ctx *ctx;\n \tstruct alg_sock *ask = alg_sk(sk);\n-\tstruct aead_tfm *tfm = private;\n-\tstruct crypto_aead *aead = tfm->aead;\n+\tstruct crypto_aead *tfm = private;\n \tunsigned int len = sizeof(*ctx);\n-\tunsigned int ivlen = crypto_aead_ivsize(aead);\n+\tunsigned int ivlen = crypto_aead_ivsize(tfm);\n \n \tctx = sock_kmalloc(sk, len, GFP_KERNEL);\n \tif (!ctx)\n@@ -554,9 +489,9 @@ static int aead_accept_parent_nokey(void *private, struct sock *sk)\n \n static int aead_accept_parent(void *private, struct sock *sk)\n {\n-\tstruct aead_tfm *tfm = private;\n+\tstruct crypto_aead *tfm = private;\n \n-\tif (crypto_aead_get_flags(tfm->aead) & CRYPTO_TFM_NEED_KEY)\n+\tif (crypto_aead_get_flags(tfm) & CRYPTO_TFM_NEED_KEY)\n \t\treturn -ENOKEY;\n \n \treturn aead_accept_parent_nokey(private, sk);\n", "prefixes": [ "SRU", "N", "2/8" ] }