From 24bf0717d2ae46a5e73c281dc3e4d5a30060f563 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Tue, 11 Jun 2024 15:47:00 +0200 Subject: [PATCH] 5.10-stable patches added patches: sunrpc-fix-loop-termination-condition-in-gss_free_in_token_pages.patch --- queue-5.10/series | 1 + ...condition-in-gss_free_in_token_pages.patch | 33 +++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 queue-5.10/sunrpc-fix-loop-termination-condition-in-gss_free_in_token_pages.patch diff --git a/queue-5.10/series b/queue-5.10/series index 4043eadf54b..56ed916c6a6 100644 --- a/queue-5.10/series +++ b/queue-5.10/series @@ -262,3 +262,4 @@ hwmon-shtc1-fix-property-misspelling.patch alsa-timer-set-lower-bound-of-start-tick-time.patch genirq-cpuhotplug-x86-vector-prevent-vector-leak-during-cpu-offline.patch media-cec-core-add-adap_nb_transmit_canceled-callback.patch +sunrpc-fix-loop-termination-condition-in-gss_free_in_token_pages.patch diff --git a/queue-5.10/sunrpc-fix-loop-termination-condition-in-gss_free_in_token_pages.patch b/queue-5.10/sunrpc-fix-loop-termination-condition-in-gss_free_in_token_pages.patch new file mode 100644 index 00000000000..7353707eaa6 --- /dev/null +++ b/queue-5.10/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 +@@ -1156,7 +1156,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