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-next>] [day] [month] [year] [list]
Message-ID:
 <CH0PR20MB381875927236C07B9CF9A8099C792@CH0PR20MB3818.namprd20.prod.outlook.com>
Date: Fri, 26 Jan 2024 23:10:06 +0000
From: Nick Spooner <nicholas.spooner@...gate.com>
To: "rafal@...ecki.pl" <rafal@...ecki.pl>, "srinivas.kandagatla@...aro.org"
	<srinivas.kandagatla@...aro.org>
CC: Evan Burgess <evan.burgess@...gate.com>, "linux-kernel@...r.kernel.org"
	<linux-kernel@...r.kernel.org>, "kernel-janitors@...r.kernel.org"
	<kernel-janitors@...r.kernel.org>
Subject: [RFC PATCH] nvmem: u-boot-env: improve error checking

Coverity scan reported CID 1575482: error handling issues; this patch
addresses this by adding error handling to u_boot_env_add_cells.

I added the RFC tag to this patch since I'm not confident about the
logic here. The check is reused from nvmem_add_cells in core.c, which
doesn't include an of_node_put on a device_node, whereas
nvmem_add_cells_from_dt does. Without much certainty, I went with the
less complex option and added it here. Any advice or suggested fixes to
this patch are welcome!

Signed-off-by: Nick Spooner <nicholas.spooner@...gate.com>
---
 drivers/nvmem/u-boot-env.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/nvmem/u-boot-env.c b/drivers/nvmem/u-boot-env.c
index befbab156cda..c15de5f7fd99 100644
--- a/drivers/nvmem/u-boot-env.c
+++ b/drivers/nvmem/u-boot-env.c
@@ -95,6 +95,7 @@ static int u_boot_env_add_cells(struct u_boot_env *priv, uint8_t *buf,
        struct device *dev = priv->dev;
        char *data = buf + data_offset;
        char *var, *value, *eq;
+       int rval;

        for (var = data;
             var < data + data_len && *var;
@@ -119,7 +120,9 @@ static int u_boot_env_add_cells(struct u_boot_env *priv, uint8_t *buf,
                        info.read_post_process = u_boot_env_read_post_process_ethaddr;
                }

-               nvmem_add_one_cell(nvmem, &info);
+               rval = nvmem_add_one_cell(nvmem, &info);
+               if (rval)
+                       return rval;
        }

        return 0;
--
2.34.1


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ