firmware: meson_sm: fix to avoid potential NULL pointer dereference
authorZhang Shurong <zhang_shurong@foxmail.com>
Sat, 15 Jul 2023 14:13:38 +0000 (22:13 +0800)
committerNeil Armstrong <neil.armstrong@linaro.org>
Fri, 4 Aug 2023 13:19:01 +0000 (15:19 +0200)
of_match_device() may fail and returns a NULL pointer.

Fix this by checking the return value of of_match_device.

Fixes: 8cde3c2153e8 ("firmware: meson_sm: Rework driver as a proper platform driver")
Signed-off-by: Zhang Shurong <zhang_shurong@foxmail.com>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/r/tencent_AA08AAA6C4F34D53ADCE962E188A879B8206@qq.com
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
drivers/firmware/meson/meson_sm.c

index 798bcdb05d84ee067b6e7fb6c16a998ed4e9582a..9a2656d73600b510935630d9e38718582b40f2da 100644 (file)
@@ -292,6 +292,8 @@ static int __init meson_sm_probe(struct platform_device *pdev)
                return -ENOMEM;
 
        chip = of_match_device(meson_sm_ids, dev)->data;
+       if (!chip)
+               return -EINVAL;
 
        if (chip->cmd_shmem_in_base) {
                fw->sm_shmem_in_base = meson_sm_map_shmem(chip->cmd_shmem_in_base,