Message ID | 20240527084428.246396-3-thorsten.blum@toblux.com |
---|---|
State | Accepted |
Commit | f0f53369af368b7ffc8a12bff508d7c958cce8b2 |
Headers | show |
Series | [RESEND,v2] misc: fastrpc: Use memdup_user() | expand |
On Mon, 27 May 2024 10:44:30 +0200, Thorsten Blum wrote: > Switching to memdup_user() overwrites the allocated memory only once, > whereas kzalloc() followed by copy_from_user() initializes the allocated > memory to zero and then immediately overwrites it. > > Fixes the following Coccinelle/coccicheck warning reported by > memdup_user.cocci: > > [...] Applied, thanks! [1/1] misc: fastrpc: Use memdup_user() commit: a16833330e2fa60912af6abebde711bf2c672cf9 Best regards,
diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c index 4c67e2c5a82e..694fc083b1bd 100644 --- a/drivers/misc/fastrpc.c +++ b/drivers/misc/fastrpc.c @@ -1259,17 +1259,12 @@ static int fastrpc_init_create_static_process(struct fastrpc_user *fl, goto err; } - name = kzalloc(init.namelen, GFP_KERNEL); - if (!name) { - err = -ENOMEM; + name = memdup_user(u64_to_user_ptr(init.name), init.namelen); + if (IS_ERR(name)) { + err = PTR_ERR(name); goto err; } - if (copy_from_user(name, (void __user *)(uintptr_t)init.name, init.namelen)) { - err = -EFAULT; - goto err_name; - } - if (!fl->cctx->remote_heap) { err = fastrpc_remote_heap_alloc(fl, fl->sctx->dev, init.memlen, &fl->cctx->remote_heap);