Skip to content

Commit 81e0679

Browse files
benzeajmberg-intel
authored andcommitted
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 <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Johannes Berg <[email protected]>
1 parent 32f1fde commit 81e0679

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

arch/x86/um/signal.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ int setup_signal_stack_sc(unsigned long stack_top, struct ksignal *ksig,
242242
if (ksig->ka.sa.sa_flags & SA_RESTORER)
243243
restorer = ksig->ka.sa.sa_restorer;
244244

245-
err |= __put_user(restorer, (void **)&frame->pretcode);
245+
err |= __put_user(restorer, (void __user * __user *)&frame->pretcode);
246246
err |= __put_user(sig, &frame->sig);
247247

248248
fp_to = (unsigned long)frame + sizeof(*frame);
@@ -298,10 +298,10 @@ int setup_signal_stack_si(unsigned long stack_top, struct ksignal *ksig,
298298
if (ksig->ka.sa.sa_flags & SA_RESTORER)
299299
restorer = ksig->ka.sa.sa_restorer;
300300

301-
err |= __put_user(restorer, (void **)&frame->pretcode);
301+
err |= __put_user(restorer, (void __user * __user *)&frame->pretcode);
302302
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);
305305
err |= copy_siginfo_to_user(&frame->info, &ksig->info);
306306

307307
fp_to = (unsigned long)frame + sizeof(*frame);
@@ -387,7 +387,7 @@ int setup_signal_stack_si(unsigned long stack_top, struct ksignal *ksig,
387387

388388
/* Create the ucontext. */
389389
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);
391391
err |= __save_altstack(&frame->uc.uc_stack, PT_REGS_SP(regs));
392392

393393
fp_to = (unsigned long)frame + sizeof(*frame);
@@ -411,7 +411,7 @@ int setup_signal_stack_si(unsigned long stack_top, struct ksignal *ksig,
411411
*/
412412
/* x86-64 should always use SA_RESTORER. */
413413
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,
415415
&frame->pretcode);
416416
else
417417
/* could use a vstub here */

0 commit comments

Comments
 (0)