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@xxxxxxxxxxx> --- 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