[PATCH] ASoC: SOF: Fix null pointer dereference in sof_pci_probe

From: Kunwu Chan
Date: Thu Nov 23 2023 - 10:55:17 EST


devm_kasprintf() returns a pointer to dynamically allocated memory
which can be NULL upon failure.

Fixes: 46207ca24545 ("ASoC: SOF: pci: change the default firmware path when the community key is used")
Fixes: 25bbc0c59ee1 ("ASoC: SOF: Add path definition for external firmware libraries")
Signed-off-by: Kunwu Chan <chentao@xxxxxxxxxx>
---
sound/soc/sof/sof-pci-dev.c | 8 ++++++++
1 file changed, 8 insertions(+)

diff --git a/sound/soc/sof/sof-pci-dev.c b/sound/soc/sof/sof-pci-dev.c
index 64b326e3ef85..75a9bfa5bfbe 100644
--- a/sound/soc/sof/sof-pci-dev.c
+++ b/sound/soc/sof/sof-pci-dev.c
@@ -282,6 +282,10 @@ int sof_pci_probe(struct pci_dev *pci, const struct pci_device_id *pci_id)
devm_kasprintf(dev, GFP_KERNEL, "%s/%s",
sof_pdata->desc->default_fw_path[sof_pdata->ipc_type],
"community");
+ if (!sof_pdata->fw_filename_prefix) {
+ ret = -ENOMEM;
+ goto out;
+ }

dev_dbg(dev,
"Platform uses community key, changed fw path to %s\n",
@@ -303,6 +307,10 @@ int sof_pci_probe(struct pci_dev *pci, const struct pci_device_id *pci_id)
devm_kasprintf(dev, GFP_KERNEL, "%s/%s",
sof_pdata->desc->default_lib_path[sof_pdata->ipc_type],
"community");
+ if (!sof_pdata->fw_lib_prefix) {
+ ret = -ENOMEM;
+ goto out;
+ }

dev_dbg(dev,
"Platform uses community key, changed fw_lib path to %s\n",
--
2.34.1