From: Greg Kroah-Hartman Date: Mon, 7 Aug 2023 09:17:08 +0000 (+0200) Subject: 4.14-stable patches X-Git-Tag: v4.14.321~18 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7ca1a271f5f97ef6f470ad1d55c3f4a6ceb8c852;p=thirdparty%2Fkernel%2Fstable-queue.git 4.14-stable patches added patches: test_firmware-fix-a-memory-leak-with-reqs-buffer.patch --- diff --git a/queue-4.14/series b/queue-4.14/series index ea36325b647..26e02f40433 100644 --- a/queue-4.14/series +++ b/queue-4.14/series @@ -200,3 +200,4 @@ fs-sysv-null-check-to-prevent-null-ptr-deref-bug.patch bluetooth-l2cap-fix-use-after-free-in-l2cap_sock_ready_cb.patch net-usbnet-fix-warning-in-usbnet_start_xmit-usb_submit_urb.patch ext2-drop-fragment-support.patch +test_firmware-fix-a-memory-leak-with-reqs-buffer.patch diff --git a/queue-4.14/test_firmware-fix-a-memory-leak-with-reqs-buffer.patch b/queue-4.14/test_firmware-fix-a-memory-leak-with-reqs-buffer.patch new file mode 100644 index 00000000000..0f8c557eee0 --- /dev/null +++ b/queue-4.14/test_firmware-fix-a-memory-leak-with-reqs-buffer.patch @@ -0,0 +1,66 @@ +From be37bed754ed90b2655382f93f9724b3c1aae847 Mon Sep 17 00:00:00 2001 +From: Mirsad Goran Todorovac +Date: Tue, 9 May 2023 10:47:47 +0200 +Subject: test_firmware: fix a memory leak with reqs buffer + +From: Mirsad Goran Todorovac + +commit be37bed754ed90b2655382f93f9724b3c1aae847 upstream. + +Dan Carpenter spotted that test_fw_config->reqs will be leaked if +trigger_batched_requests_store() is called two or more times. +The same appears with trigger_batched_requests_async_store(). + +This bug wasn't trigger by the tests, but observed by Dan's visual +inspection of the code. + +The recommended workaround was to return -EBUSY if test_fw_config->reqs +is already allocated. + +Fixes: 7feebfa487b92 ("test_firmware: add support for request_firmware_into_buf") +Cc: Luis Chamberlain +Cc: Greg Kroah-Hartman +Cc: Russ Weight +Cc: Tianfei Zhang +Cc: Shuah Khan +Cc: Colin Ian King +Cc: Randy Dunlap +Cc: linux-kselftest@vger.kernel.org +Cc: stable@vger.kernel.org # v5.4 +Suggested-by: Dan Carpenter +Suggested-by: Takashi Iwai +Signed-off-by: Mirsad Goran Todorovac +Reviewed-by: Dan Carpenter +Acked-by: Luis Chamberlain +Link: https://lore.kernel.org/r/20230509084746.48259-2-mirsad.todorovac@alu.unizg.hr +Signed-off-by: Greg Kroah-Hartman +--- + lib/test_firmware.c | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +--- a/lib/test_firmware.c ++++ b/lib/test_firmware.c +@@ -621,6 +621,11 @@ static ssize_t trigger_batched_requests_ + + mutex_lock(&test_fw_mutex); + ++ if (test_fw_config->reqs) { ++ rc = -EBUSY; ++ goto out_bail; ++ } ++ + test_fw_config->reqs = vzalloc(sizeof(struct test_batched_req) * + test_fw_config->num_requests * 2); + if (!test_fw_config->reqs) { +@@ -723,6 +728,11 @@ ssize_t trigger_batched_requests_async_s + + mutex_lock(&test_fw_mutex); + ++ if (test_fw_config->reqs) { ++ rc = -EBUSY; ++ goto out_bail; ++ } ++ + test_fw_config->reqs = vzalloc(sizeof(struct test_batched_req) * + test_fw_config->num_requests * 2); + if (!test_fw_config->reqs) {