diff mbox series

[RESEND,2/3] EDAC/versal: Add a NULL check for the user passed values

Message ID 20240425121942.26378-3-shubhrajyoti.datta@amd.com (mailing list archive)
State New
Headers show
Series EDAC/versal: Driver updates | expand

Commit Message

Shubhrajyoti Datta April 25, 2024, 12:19 p.m. UTC
The function inject_data_ue_store() lacks a NULL check for the
user passed values. To prevent below kernel crash include a NULL check.

Call trace:

kstrtoull+0xc/0x28
kstrtou8+0x2c/0x7c
inject_data_ue_store+0x10c/0x24c
full_proxy_write+0x60/0xb4
vfs_write+0xb0/0x374
ksys_write+0x6c/0x100
__arm64_sys_write+0x1c/0x28
invoke_syscall+0x54/0x124
el0_svc_common.constprop.0+0xc0/0xe0
do_el0_svc+0x1c/0x28
el0_svc+0x34/0xb8
el0t_64_sync_handler+0x100/0x12c
el0t_64_sync+0x190/0x194

Fixes: 83bf24051a60 ("EDAC/versal: Make the bit position of injected errors configurable")
Signed-off-by: Shubhrajyoti Datta <shubhrajyoti.datta@amd.com>
---

 drivers/edac/versal_edac.c | 3 +++
 1 file changed, 3 insertions(+)
diff mbox series

Patch

diff --git a/drivers/edac/versal_edac.c b/drivers/edac/versal_edac.c
index 710325381d5d..a1407a399ed9 100644
--- a/drivers/edac/versal_edac.c
+++ b/drivers/edac/versal_edac.c
@@ -975,6 +975,9 @@  static ssize_t inject_data_ue_store(struct file *file, const char __user *data,
 	for (i = 0; i < NUM_UE_BITPOS; i++)
 		token[i] = strsep(&pbuf, ",");
 
+	if (!token[0] || !token[1])
+		return -EFAULT;
+
 	ret = kstrtou8(token[0], 0, &ue0);
 	if (ret)
 		return ret;