diff options
author | Yizhuo <yzhai003@ucr.edu> | 2019-01-25 10:45:37 -0800 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2019-01-28 12:34:39 +0000 |
commit | e20bfeb0b7d808bc05e7c4cb1f492cd31d837da0 (patch) | |
tree | dd510bc10a9dbf66038a01b537be197418e56b7a /sound/soc/codecs/rt5651.c | |
parent | 5e484ec1758b95e6420787fc17f0e8c5e152c264 (diff) | |
download | linux-e20bfeb0b7d808bc05e7c4cb1f492cd31d837da0.tar.bz2 |
ASoC: rt5651: Variable "ret" in function rt5651_i2c_probe() could be uninitialized
In function rt5651_i2c_probe(), local variable "ret" could
be uninitialized if function regmap_read() returns -EINVAL.
However, this value is used in if statement. This is
potentially unsafe.
Signed-off-by: Yizhuo <yzhai003@ucr.edu>
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/codecs/rt5651.c')
-rw-r--r-- | sound/soc/codecs/rt5651.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sound/soc/codecs/rt5651.c b/sound/soc/codecs/rt5651.c index 75994297c896..29b2d60076b0 100644 --- a/sound/soc/codecs/rt5651.c +++ b/sound/soc/codecs/rt5651.c @@ -2181,6 +2181,7 @@ static int rt5651_i2c_probe(struct i2c_client *i2c, { struct rt5651_priv *rt5651; int ret; + int err; rt5651 = devm_kzalloc(&i2c->dev, sizeof(*rt5651), GFP_KERNEL); @@ -2197,7 +2198,10 @@ static int rt5651_i2c_probe(struct i2c_client *i2c, return ret; } - regmap_read(rt5651->regmap, RT5651_DEVICE_ID, &ret); + err = regmap_read(rt5651->regmap, RT5651_DEVICE_ID, &ret); + if (err) + return err; + if (ret != RT5651_DEVICE_ID_VALUE) { dev_err(&i2c->dev, "Device with ID register %#x is not rt5651\n", ret); |