Skip to contentSkip to conversation

pinctrl: madera: Fix uninitialized variable bug in madera_mux_set_mux

PATCH In review Gustavo A. R. Silva 3 participants 4 messages Oct 10, 2018 – Oct 12, 2018

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 pinctrl: madera: Fix uninitialized variable bug in madera_mux_set_mux

There is a potential execution path in which variable *ret* is checked in an IF statement, and then its value is used to report an error at line 659 without being properly initialized previously:

659 if (ret)
660 dev_err(priv->dev, "Failed to write to 0x%x (%d)\n", reg, ret);

Fix this by initializing variable *ret* to 0 in order to avoid unpredictable or unintended results.

Addresses-Coverity-ID: 1471969 ("Uninitialized scalar variable")

Fixes 218d72a77b0b ("pinctrl: madera: Add driver for Cirrus Logic Madera codecs")

---
Changes in v2:
- Initialize variable ret to 0 instead of -1. Thanks to Charles Keepax for pointing this out.
- Update subject and commit log.

 drivers/pinctrl/cirrus/pinctrl-madera-core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/pinctrl/cirrus/pinctrl-madera-core.c +1 -1
index 0266302..a5dda83 100644
@@ -608,7 +608,7 @@ static int madera_mux_set_mux(struct pinctrl_dev *pctldev,
 	unsigned int n_chip_groups = priv->chip->n_pin_groups;
 	const char *func_name = madera_mux_funcs[selector].name;
 	unsigned int reg;
-	int i, ret;
+	int i, ret = 0;
 
 	dev_dbg(priv->dev, "%s selecting %u (%s) for group %u (%s)\n",
 		__func__, selector, func_name, group,
Signature · 1 line
2.7.4
maintainer Acked-by on v2 1/1
#1 lore raw
Quoted 7 lines · Gustavo A. R. Silva

There is a potential execution path in which variable *ret* is checked in an IF statement, and then its value is used to report an error at line 659 without being properly initialized previously:

659 if (ret)
660 dev_err(priv->dev, "Failed to write to 0x%x (%d)\n", reg, ret);

Quoted 7 lines

Fix this by initializing variable *ret* to 0 in order to avoid unpredictable or unintended results.

Addresses-Coverity-ID: 1471969 ("Uninitialized scalar variable")

Fixes 218d72a77b0b ("pinctrl: madera: Add driver for Cirrus Logic Madera codecs")

---

Thanks,
Charles

#2 lore raw
In reply to Gustavo A. R. Silva
Quoted 10 lines · Gustavo A. R. Silva

There is a potential execution path in which variable *ret* is checked in an IF statement, and then its value is used to report an error at line 659 without being properly initialized previously:

659 if (ret)
660 dev_err(priv->dev, "Failed to write to 0x%x (%d)\n", reg, ret);

Fix this by initializing variable *ret* to 0 in order to avoid unpredictable or unintended results.

Quoted 8 lines

Addresses-Coverity-ID: 1471969 ("Uninitialized scalar variable")

Fixes 218d72a77b0b ("pinctrl: madera: Add driver for Cirrus Logic Madera codecs")

---
Changes in v2:
- Initialize variable ret to 0 instead of -1. Thanks to Charles Keepax for pointing this out.
- Update subject and commit log.

Patch applied with Charles' ACK.

Yours,
Linus Walleij

#3 lore raw
Quoted 7 lines · Linus Walleij
Quoted 4 lines

Changes in v2:
- Initialize variable ret to 0 instead of -1. Thanks to Charles Keepax for pointing this out.
- Update subject and commit log.

Patch applied with Charles' ACK.

Thanks, Linus.
--
Gustavo