ASoC: rt274: Variable "buf" in function rt274_jack_detect() could be uninitialized
In function rt274_jack_detect(), local variable "buf" could be uninitialized if function regmap_read() returns -EINVAL. However, it will be used to calculate "hp" and "mic" and make their value unpredictable while those value are used in the caller. This is potentially unsafe. Signed-off-by: Yizhuo <yzhai003@ucr.edu> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
7b57085a33
commit
4a8191aa9e
|
@ -353,6 +353,7 @@ static void rt274_index_sync(struct snd_soc_component *component)
|
|||
static int rt274_jack_detect(struct rt274_priv *rt274, bool *hp, bool *mic)
|
||||
{
|
||||
unsigned int buf;
|
||||
int ret;
|
||||
|
||||
*hp = false;
|
||||
*mic = false;
|
||||
|
@ -360,9 +361,15 @@ static int rt274_jack_detect(struct rt274_priv *rt274, bool *hp, bool *mic)
|
|||
if (!rt274->component)
|
||||
return -EINVAL;
|
||||
|
||||
regmap_read(rt274->regmap, RT274_GET_HP_SENSE, &buf);
|
||||
ret = regmap_read(rt274->regmap, RT274_GET_HP_SENSE, &buf);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
*hp = buf & 0x80000000;
|
||||
regmap_read(rt274->regmap, RT274_GET_MIC_SENSE, &buf);
|
||||
ret = regmap_read(rt274->regmap, RT274_GET_MIC_SENSE, &buf);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
*mic = buf & 0x80000000;
|
||||
|
||||
pr_debug("*hp = %d *mic = %d\n", *hp, *mic);
|
||||
|
|
Loading…
Reference in New Issue