aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPer Åstrand <per.astrand@arm.com>2022-05-18 09:12:15 +0200
committerKristofer Jonsson <kristofer.jonsson@arm.com>2022-05-18 17:18:08 +0000
commitf50f25e9ecf5194a624e5e8cd3f3f2e3249b479c (patch)
treea94d501517c6ad20ac1ad9b32f7e8015e8782662
parent6ab0b6ba4dec4b0faadf310891b15de382db396f (diff)
downloadethos-u-linux-driver-stack-f50f25e9ecf5194a624e5e8cd3f3f2e3249b479c.tar.gz
Check size of buffer before allocating
Avoid undefined behaviour from calling dma_alloc_coherent with requested size=0 as reported by UBSAN. Change-Id: I1732759464f1d88259edeea099b1729f4ae6b86f
-rw-r--r--kernel/ethosu_buffer.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/kernel/ethosu_buffer.c b/kernel/ethosu_buffer.c
index cad73b2..4f70f1d 100644
--- a/kernel/ethosu_buffer.c
+++ b/kernel/ethosu_buffer.c
@@ -222,6 +222,9 @@ int ethosu_buffer_create(struct ethosu_device *edev,
struct ethosu_buffer *buf;
int ret = -ENOMEM;
+ if (!capacity)
+ return -EINVAL;
+
buf = devm_kzalloc(edev->dev, sizeof(*buf), GFP_KERNEL);
if (!buf)
return -ENOMEM;