2023-12-27 16:00:35

by Markus Elfring

[permalink] [raw]
Subject: [PATCH 0/2] nfc: mei_phy: Adjustments for two function implementations

From: Markus Elfring <[email protected]>
Date: Wed, 27 Dec 2023 16:53:21 +0100

A few update suggestions were taken into account
from static source code analysis.

Markus Elfring (2):
Return directly after a failed kzalloc() in mei_nfc_send()
Use common code in mei_nfc_connect()

drivers/nfc/mei_phy.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

--
2.43.0



2023-12-27 16:02:49

by Markus Elfring

[permalink] [raw]
Subject: [PATCH 1/2] nfc: mei_phy: Return directly after a failed kzalloc() in mei_nfc_send()

From: Markus Elfring <[email protected]>
Date: Wed, 27 Dec 2023 16:30:20 +0100

The kfree() function was called in one case by
the mei_nfc_send() function during error handling
even if the passed variable contained a null pointer.
This issue was detected by using the Coccinelle software.

Thus return directly after a call of the function “kzalloc” failed
at the beginning.

Signed-off-by: Markus Elfring <[email protected]>
---
drivers/nfc/mei_phy.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/nfc/mei_phy.c b/drivers/nfc/mei_phy.c
index f9cca885beec..937f229f4646 100644
--- a/drivers/nfc/mei_phy.c
+++ b/drivers/nfc/mei_phy.c
@@ -208,10 +208,9 @@ static int mei_nfc_send(struct nfc_mei_phy *phy, const u8 *buf, size_t length)
u8 *mei_buf;
int err;

- err = -ENOMEM;
mei_buf = kzalloc(length + MEI_NFC_HEADER_SIZE, GFP_KERNEL);
if (!mei_buf)
- goto out;
+ return -ENOMEM;

hdr = (struct mei_nfc_hdr *)mei_buf;
hdr->cmd = MEI_NFC_CMD_HCI_SEND;
--
2.43.0


2023-12-27 16:04:29

by Markus Elfring

[permalink] [raw]
Subject: [PATCH 2/2] nfc: mei_phy: Use common code in mei_nfc_connect()

From: Markus Elfring <[email protected]>
Date: Wed, 27 Dec 2023 16:45:39 +0100

Use another label so that a kfree() call can be better reused
at the end of this function.

Signed-off-by: Markus Elfring <[email protected]>
---
drivers/nfc/mei_phy.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/nfc/mei_phy.c b/drivers/nfc/mei_phy.c
index 937f229f4646..9272564012b3 100644
--- a/drivers/nfc/mei_phy.c
+++ b/drivers/nfc/mei_phy.c
@@ -157,8 +157,8 @@ static int mei_nfc_connect(struct nfc_mei_phy *phy)

reply = kzalloc(connect_resp_length, GFP_KERNEL);
if (!reply) {
- kfree(cmd);
- return -ENOMEM;
+ r = -ENOMEM;
+ goto free_cmd;
}

connect_resp = (struct mei_nfc_connect_resp *)reply->data;
@@ -197,6 +197,7 @@ static int mei_nfc_connect(struct nfc_mei_phy *phy)

err:
kfree(reply);
+free_cmd:
kfree(cmd);

return r;
--
2.43.0