From 389469b59ca7343f08c9c67909166d04bf9c2129 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Tue, 11 Jun 2024 15:17:57 +0200 Subject: [PATCH] 5.4-stable patches added patches: sunrpc-fix-loop-termination-condition-in-gss_free_in_token_pages.patch --- queue-5.4/series | 1 + ...condition-in-gss_free_in_token_pages.patch | 33 +++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 queue-5.4/sunrpc-fix-loop-termination-condition-in-gss_free_in_token_pages.patch diff --git a/queue-5.4/series b/queue-5.4/series index 8f3fb9cc73d..272d8b2af2b 100644 --- a/queue-5.4/series +++ b/queue-5.4/series @@ -161,3 +161,4 @@ spi-stm32-don-t-warn-about-spurious-interrupts.patch ipvlan-dont-use-skb-sk-in-ipvlan_process_v-4-6-_outb.patch alsa-timer-set-lower-bound-of-start-tick-time.patch genirq-cpuhotplug-x86-vector-prevent-vector-leak-during-cpu-offline.patch +sunrpc-fix-loop-termination-condition-in-gss_free_in_token_pages.patch diff --git a/queue-5.4/sunrpc-fix-loop-termination-condition-in-gss_free_in_token_pages.patch b/queue-5.4/sunrpc-fix-loop-termination-condition-in-gss_free_in_token_pages.patch new file mode 100644 index 00000000000..8740543cec9 --- /dev/null +++ b/queue-5.4/sunrpc-fix-loop-termination-condition-in-gss_free_in_token_pages.patch @@ -0,0 +1,33 @@ +From 4a77c3dead97339478c7422eb07bf4bf63577008 Mon Sep 17 00:00:00 2001 +From: Chuck Lever +Date: Sun, 2 Jun 2024 18:15:25 -0400 +Subject: SUNRPC: Fix loop termination condition in gss_free_in_token_pages() + +From: Chuck Lever + +commit 4a77c3dead97339478c7422eb07bf4bf63577008 upstream. + +The in_token->pages[] array is not NULL terminated. This results in +the following KASAN splat: + + KASAN: maybe wild-memory-access in range [0x04a2013400000008-0x04a201340000000f] + +Fixes: bafa6b4d95d9 ("SUNRPC: Fix gss_free_in_token_pages()") +Reviewed-by: Benjamin Coddington +Signed-off-by: Chuck Lever +Signed-off-by: Greg Kroah-Hartman +--- + net/sunrpc/auth_gss/svcauth_gss.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/net/sunrpc/auth_gss/svcauth_gss.c ++++ b/net/sunrpc/auth_gss/svcauth_gss.c +@@ -1104,7 +1104,7 @@ static int gss_read_proxy_verf(struct sv + } + + pages = DIV_ROUND_UP(inlen, PAGE_SIZE); +- in_token->pages = kcalloc(pages, sizeof(struct page *), GFP_KERNEL); ++ in_token->pages = kcalloc(pages + 1, sizeof(struct page *), GFP_KERNEL); + if (!in_token->pages) { + kfree(in_handle->data); + return SVC_DENIED; -- 2.47.3