Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

um: fix sparse warnings in signal code

sparse reports that various places were missing the __user tag in casts.
In addition, one location was using 0 instead of NULL.

Signed-off-by: Benjamin Berg <benjamin.berg@intel.com>
Link: https://patch.msgid.link/20241031142017.430420-2-benjamin@sipsolutions.net
Signed-off-by: Johannes Berg <johannes.berg@intel.com>

authored by

Benjamin Berg and committed by
Johannes Berg
81e0679d 32f1fde0

+6 -6
+6 -6
arch/x86/um/signal.c
··· 242 242 if (ksig->ka.sa.sa_flags & SA_RESTORER) 243 243 restorer = ksig->ka.sa.sa_restorer; 244 244 245 - err |= __put_user(restorer, (void **)&frame->pretcode); 245 + err |= __put_user(restorer, (void __user * __user *)&frame->pretcode); 246 246 err |= __put_user(sig, &frame->sig); 247 247 248 248 fp_to = (unsigned long)frame + sizeof(*frame); ··· 298 298 if (ksig->ka.sa.sa_flags & SA_RESTORER) 299 299 restorer = ksig->ka.sa.sa_restorer; 300 300 301 - err |= __put_user(restorer, (void **)&frame->pretcode); 301 + err |= __put_user(restorer, (void __user * __user *)&frame->pretcode); 302 302 err |= __put_user(sig, &frame->sig); 303 - err |= __put_user(&frame->info, (void **)&frame->pinfo); 304 - err |= __put_user(&frame->uc, (void **)&frame->puc); 303 + err |= __put_user(&frame->info, (void __user * __user *)&frame->pinfo); 304 + err |= __put_user(&frame->uc, (void __user * __user *)&frame->puc); 305 305 err |= copy_siginfo_to_user(&frame->info, &ksig->info); 306 306 307 307 fp_to = (unsigned long)frame + sizeof(*frame); ··· 387 387 388 388 /* Create the ucontext. */ 389 389 err |= __put_user(0, &frame->uc.uc_flags); 390 - err |= __put_user(0, &frame->uc.uc_link); 390 + err |= __put_user(NULL, &frame->uc.uc_link); 391 391 err |= __save_altstack(&frame->uc.uc_stack, PT_REGS_SP(regs)); 392 392 393 393 fp_to = (unsigned long)frame + sizeof(*frame); ··· 411 411 */ 412 412 /* x86-64 should always use SA_RESTORER. */ 413 413 if (ksig->ka.sa.sa_flags & SA_RESTORER) 414 - err |= __put_user((void *)ksig->ka.sa.sa_restorer, 414 + err |= __put_user((void __user *)ksig->ka.sa.sa_restorer, 415 415 &frame->pretcode); 416 416 else 417 417 /* could use a vstub here */