Thread (7 messages) flat view 7 messages, 3 authors, 2021-11-16

Re: [PATCH] tipc: check for null after calling kmemdup

From: Jakub Kicinski <kuba@kernel.org>
Date: 2021-11-13 04:13:39
Also in: lkml, netdev

On Thu, 11 Nov 2021 19:06:18 -0500 Jon Maloy wrote:
On 11/11/21 15:59, Tadeusz Struk wrote:
quoted
kmemdup can return a null pointer so need to check for it, otherwise
the null key will be dereferenced later in tipc_crypto_key_xmit as
can be seen in the trace [1].
quoted
[1] https://syzkaller.appspot.com/bug?id=bca180abb29567b189efdbdb34cbf7ba851c2a58

Reported-by: Dmitry Vyukov <dvyukov@google.com>
Signed-off-by: Tadeusz Struk <redacted>
---
  net/tipc/crypto.c | 5 +++++
  1 file changed, 5 insertions(+)
diff --git a/net/tipc/crypto.c b/net/tipc/crypto.c
index dc60c32bb70d..988a343f9fd5 100644
--- a/net/tipc/crypto.c
+++ b/net/tipc/crypto.c
@@ -597,6 +597,11 @@ static int tipc_aead_init(struct tipc_aead **aead, struct tipc_aead_key *ukey,
  	tmp->cloned = NULL;
  	tmp->authsize = TIPC_AES_GCM_TAG_SIZE;
  	tmp->key = kmemdup(ukey, tipc_aead_key_size(ukey), GFP_KERNEL);
+	if (!tmp->key) {
+		free_percpu(tmp->tfm_entry);
+		kfree_sensitive(tmp);
+		return -ENOMEM;
+	}
Acked-by: Jon Maloy <jmaloy@redhat.com>
Hm, shouldn't we free all the tfm entries here?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help