[alsa-devel] [PATCH] ALSA: aoa: onyx: always initalize register read value
A lot of places in the driver use onyx_read_register() without checking the return value, and it's been working OK for ~10 years or so, so probably never fails ... Rather than trying to check the return value everywhere, which would be relatively intrusive, at least make sure we don't use an uninitialized value.
Reported-by: Stephen Rothwell sfr@canb.auug.org.au Signed-off-by: Johannes Berg johannes@sipsolutions.net --- sound/aoa/codecs/onyx.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/sound/aoa/codecs/onyx.c b/sound/aoa/codecs/onyx.c index db917546965d..9827bee109c1 100644 --- a/sound/aoa/codecs/onyx.c +++ b/sound/aoa/codecs/onyx.c @@ -71,8 +71,10 @@ static int onyx_read_register(struct onyx *onyx, u8 reg, u8 *value) return 0; } v = i2c_smbus_read_byte_data(onyx->i2c, reg); - if (v < 0) + if (v < 0) { + *value = 0; return -1; + } *value = (u8)v; onyx->cache[ONYX_REG_CONTROL-FIRSTREGISTER] = *value; return 0;
On Mon, 29 Jul 2019 09:14:22 +0200, Johannes Berg wrote:
A lot of places in the driver use onyx_read_register() without checking the return value, and it's been working OK for ~10 years or so, so probably never fails ... Rather than trying to check the return value everywhere, which would be relatively intrusive, at least make sure we don't use an uninitialized value.
Reported-by: Stephen Rothwell sfr@canb.auug.org.au Signed-off-by: Johannes Berg johannes@sipsolutions.net
Thanks, applied now with a correction of a typo in the subject line and Fixes tag.
Takashi
participants (2)
-
Johannes Berg
-
Takashi Iwai