Commit d3366a04 authored by Zhen Ni's avatar Zhen Ni Committed by Dmitry Torokhov
Browse files

Input: uinput - zero-initialize uinput_ff_upload_compat to avoid info leak



Struct ff_effect_compat is embedded twice inside
uinput_ff_upload_compat, contains internal padding. In particular, there
is a hole after struct ff_replay to satisfy alignment requirements for
the following union member. Without clearing the structure,
copy_to_user() may leak stack data to userspace.

Initialize ff_up_compat to zero before filling valid fields.

Fixes: 2d56f3a3 ("Input: refactor evdev 32bit compat to be shareable with uinput")
Cc: stable@vger.kernel.org
Signed-off-by: default avatarZhen Ni <zhen.ni@easystack.cn>
Link: https://lore.kernel.org/r/20250928063737.74590-1-zhen.ni@easystack.cn


Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
parent 52e06d56
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -775,6 +775,7 @@ static int uinput_ff_upload_to_user(char __user *buffer,
	if (in_compat_syscall()) {
		struct uinput_ff_upload_compat ff_up_compat;

		memset(&ff_up_compat, 0, sizeof(ff_up_compat));
		ff_up_compat.request_id = ff_up->request_id;
		ff_up_compat.retval = ff_up->retval;
		/*