mirror of
https://github.com/torvalds/linux.git
synced 2026-09-28 12:02:03 +02:00
ASoC: loongson: Fix error handling in ACPI property parsing
In loongson_card_parse_acpi(), the return value of
device_property_read_string() for the `codec-dai-name` property was
ignored. If the property is missing or invalid, an uninitialized pointer
would be used later, potentially leading to undefined behavior.
Fix this by checking the return value and propagating the error
appropriately.
Cc: stable@vger.kernel.org
Reported-by: Sashiko <sashiko-bot@kernel.org>
Closes: https://sashiko.dev/#/patchset/cover.1780538113.git.zhoubinbin@loongson.cn?part=5
Fixes: ddb538a300 ("ASoC: loongson: Factor out loongson_card_acpi_find_device() function")
Signed-off-by: Binbin Zhou <zhoubinbin@loongson.cn>
Link: https://patch.msgid.link/08e44a54708eae053be148524346bb8dfcd55b03.1782439646.git.zhoubinbin@loongson.cn
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
dc59e4fea9
commit
0eb0e3c623
|
|
@ -91,7 +91,7 @@ static int loongson_card_parse_acpi(struct loongson_card_data *data)
|
|||
const char *codec_dai_name;
|
||||
struct acpi_device *adev;
|
||||
struct device *phy_dev;
|
||||
int i;
|
||||
int i, ret;
|
||||
|
||||
/* fixup platform name based on reference node */
|
||||
adev = loongson_card_acpi_find_device(card, "cpu");
|
||||
|
|
@ -108,7 +108,9 @@ static int loongson_card_parse_acpi(struct loongson_card_data *data)
|
|||
return -ENOENT;
|
||||
snprintf(codec_name, sizeof(codec_name), "i2c-%s", acpi_dev_name(adev));
|
||||
|
||||
device_property_read_string(card->dev, "codec-dai-name", &codec_dai_name);
|
||||
ret = device_property_read_string(card->dev, "codec-dai-name", &codec_dai_name);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
for (i = 0; i < card->num_links; i++) {
|
||||
loongson_dai_links[i].platforms->name = dev_name(phy_dev);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user