ASoC: samsung: i2s: check the return value of kstrdup()
authorXiaoke Wang <xkernel.wang@foxmail.com>
Mon, 14 Mar 2022 10:36:45 +0000 (18:36 +0800)
committerMark Brown <broonie@kernel.org>
Wed, 16 Mar 2022 16:39:17 +0000 (16:39 +0000)
kstrdup() is a memory allocation function which can return NULL when
some internal memory errors happen. It is better to check the return
value of it to catch the error in time.

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Signed-off-by: Xiaoke Wang <xkernel.wang@foxmail.com>
Link: https://lore.kernel.org/r/tencent_EC21778DC383823CBC4069EA9F0B84943905@qq.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/samsung/i2s.c

index 309badc..70c8271 100644 (file)
@@ -1349,6 +1349,10 @@ static int i2s_create_secondary_device(struct samsung_i2s_priv *priv)
                return -ENOMEM;
 
        pdev_sec->driver_override = kstrdup("samsung-i2s", GFP_KERNEL);
+       if (!pdev_sec->driver_override) {
+               platform_device_put(pdev_sec);
+               return -ENOMEM;
+       }
 
        ret = platform_device_add(pdev_sec);
        if (ret < 0) {