lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <40a0ddb2-a2dc-4637-a899-65b84065032b@web.de>
Date: Mon, 24 Mar 2025 13:30:24 +0100
From: Markus Elfring <Markus.Elfring@....de>
To: kernel-janitors@...r.kernel.org,
 Alexander Usyskin <alexander.usyskin@...el.com>,
 Arnd Bergmann <arnd@...db.de>,
 Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
 Tomas Winkler <tomas.winkler@...el.com>
Cc: cocci@...ia.fr, LKML <linux-kernel@...r.kernel.org>
Subject: [PATCH v3] mei: Improve exception handling in mei_cl_irq_read_msg()

From: Markus Elfring <elfring@...rs.sourceforge.net>
Date: Mon, 24 Mar 2025 13:05:12 +0100

The label “discard” was used to jump to another pointer check despite of
the detail in the implementation of the function “mei_cl_irq_read_msg”
that it was determined already that a corresponding variable contained
a null pointer.

* Thus use an additional label instead.

* Delete a redundant check.


This issue was detected by using the Coccinelle software.

Signed-off-by: Markus Elfring <elfring@...rs.sourceforge.net>
---

V3:
The label selection was adjusted according to the naming preferences
of Alexander Usyskin.
https://lore.kernel.org/cocci/CY5PR11MB6366D07A7F302780A87160E6EDCB2@CY5PR11MB6366.namprd11.prod.outlook.com/

V2:
* The summary phrase was adjusted a bit.

* The Fixes tags were omitted.

* The change suggestion was rebased on source files of
  the software “Linux next-20250228”.


 drivers/misc/mei/interrupt.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/misc/mei/interrupt.c b/drivers/misc/mei/interrupt.c
index b09b79fedaba..78a01b402ea4 100644
--- a/drivers/misc/mei/interrupt.c
+++ b/drivers/misc/mei/interrupt.c
@@ -116,11 +116,11 @@ static int mei_cl_irq_read_msg(struct mei_cl *cl,
 	if (!cb) {
 		if (!mei_cl_is_fixed_address(cl)) {
 			cl_err(dev, cl, "pending read cb not found\n");
-			goto discard;
+			goto discard_nocb;
 		}
 		cb = mei_cl_alloc_cb(cl, mei_cl_mtu(cl), MEI_FOP_READ, cl->fp);
 		if (!cb)
-			goto discard;
+			goto discard_nocb;
 		list_add_tail(&cb->list, &cl->rd_pending);
 	}

@@ -236,8 +236,8 @@ static int mei_cl_irq_read_msg(struct mei_cl *cl,
 	return 0;

 discard:
-	if (cb)
-		list_move_tail(&cb->list, cmpl_list);
+	list_move_tail(&cb->list, cmpl_list);
+discard_nocb:
 	mei_irq_discard_msg(dev, mei_hdr, length);
 	return 0;
 }
--
2.49.0


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ