From: Greg Kroah-Hartman Date: Sat, 12 Aug 2023 08:15:08 +0000 (+0200) Subject: 4.14-stable patches X-Git-Tag: v4.14.323~63 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f6d64a9cb5a0efddb7d3603e3de04139dda9b99d;p=thirdparty%2Fkernel%2Fstable-queue.git 4.14-stable patches added patches: test_firmware-return-enomem-instead-of-enospc-on-failed-memory-allocation.patch --- diff --git a/queue-4.14/series b/queue-4.14/series index c3a3f19836e..7af09f0c761 100644 --- a/queue-4.14/series +++ b/queue-4.14/series @@ -4,3 +4,4 @@ ipv6-adjust-ndisc_is_useropt-to-also-return-true-for-pio.patch dmaengine-pl330-return-dma_paused-when-transaction-is-paused.patch radix-tree-test-suite-fix-incorrect-allocation-size-for-pthreads.patch nilfs2-fix-use-after-free-of-nilfs_root-in-dirtying-inodes-via-iput.patch +test_firmware-return-enomem-instead-of-enospc-on-failed-memory-allocation.patch diff --git a/queue-4.14/test_firmware-return-enomem-instead-of-enospc-on-failed-memory-allocation.patch b/queue-4.14/test_firmware-return-enomem-instead-of-enospc-on-failed-memory-allocation.patch new file mode 100644 index 00000000000..d988ea59f65 --- /dev/null +++ b/queue-4.14/test_firmware-return-enomem-instead-of-enospc-on-failed-memory-allocation.patch @@ -0,0 +1,87 @@ +From 7dae593cd226a0bca61201cf85ceb9335cf63682 Mon Sep 17 00:00:00 2001 +From: Mirsad Goran Todorovac +Date: Tue, 6 Jun 2023 09:08:10 +0200 +Subject: test_firmware: return ENOMEM instead of ENOSPC on failed memory allocation + +From: Mirsad Goran Todorovac + +commit 7dae593cd226a0bca61201cf85ceb9335cf63682 upstream. + +In a couple of situations like + + name = kstrndup(buf, count, GFP_KERNEL); + if (!name) + return -ENOSPC; + +the error is not actually "No space left on device", but "Out of memory". + +It is semantically correct to return -ENOMEM in all failed kstrndup() +and kzalloc() cases in this driver, as it is not a problem with disk +space, but with kernel memory allocator failing allocation. + +The semantically correct should be: + + name = kstrndup(buf, count, GFP_KERNEL); + if (!name) + return -ENOMEM; + +Cc: Dan Carpenter +Cc: Takashi Iwai +Cc: Kees Cook +Cc: "Luis R. Rodriguez" +Cc: Scott Branden +Cc: Hans de Goede +Cc: Brian Norris +Fixes: c92316bf8e948 ("test_firmware: add batched firmware tests") +Fixes: 0a8adf584759c ("test: add firmware_class loader test") +Fixes: 548193cba2a7d ("test_firmware: add support for firmware_request_platform") +Fixes: eb910947c82f9 ("test: firmware_class: add asynchronous request trigger") +Fixes: 061132d2b9c95 ("test_firmware: add test custom fallback trigger") +Fixes: 7feebfa487b92 ("test_firmware: add support for request_firmware_into_buf") +Signed-off-by: Mirsad Goran Todorovac +Reviewed-by: Dan Carpenter +Message-ID: <20230606070808.9300-1-mirsad.todorovac@alu.unizg.hr> +Signed-off-by: Mirsad Todorovac +Signed-off-by: Greg Kroah-Hartman +--- + lib/test_firmware.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +--- a/lib/test_firmware.c ++++ b/lib/test_firmware.c +@@ -159,7 +159,7 @@ static int __kstrncpy(char **dst, const + { + *dst = kstrndup(name, count, gfp); + if (!*dst) +- return -ENOSPC; ++ return -ENOMEM; + return count; + } + +@@ -459,7 +459,7 @@ static ssize_t trigger_request_store(str + + name = kstrndup(buf, count, GFP_KERNEL); + if (!name) +- return -ENOSPC; ++ return -ENOMEM; + + pr_info("loading '%s'\n", name); + +@@ -500,7 +500,7 @@ static ssize_t trigger_async_request_sto + + name = kstrndup(buf, count, GFP_KERNEL); + if (!name) +- return -ENOSPC; ++ return -ENOMEM; + + pr_info("loading '%s'\n", name); + +@@ -543,7 +543,7 @@ static ssize_t trigger_custom_fallback_s + + name = kstrndup(buf, count, GFP_KERNEL); + if (!name) +- return -ENOSPC; ++ return -ENOMEM; + + pr_info("loading '%s' using custom fallback mechanism\n", name); +