intel_th: msu-sink: Potential dereference of null pointer
authorJiasheng Jiang <jiasheng@iscas.ac.cn>
Tue, 5 Jul 2022 08:26:33 +0000 (11:26 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 17 Aug 2022 12:23:49 +0000 (14:23 +0200)
[ Upstream commit 82f76a4a720791d889de775b5f7541d601efc8bd ]

The return value of dma_alloc_coherent() needs to be checked.
To avoid use of null pointer in sg_set_buf() in case of the failure of
alloc.

Fixes: f220df66f676 ("intel_th: msu-sink: An example msu buffer "sink"")
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Link: https://lore.kernel.org/r/20220705082637.59979-3-alexander.shishkin@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/hwtracing/intel_th/msu-sink.c

index 2c7f511..891b28e 100644 (file)
@@ -71,6 +71,9 @@ static int msu_sink_alloc_window(void *data, struct sg_table **sgt, size_t size)
                block = dma_alloc_coherent(priv->dev->parent->parent,
                                           PAGE_SIZE, &sg_dma_address(sg_ptr),
                                           GFP_KERNEL);
+               if (!block)
+                       return -ENOMEM;
+
                sg_set_buf(sg_ptr, block, PAGE_SIZE);
        }