Inviato da iPhone
> Il giorno 14 feb 2019, alle ore 13:59, Segher Boessenkool > <seg...@kernel.crashing.org> ha scritto: > > Hi Adhemerval, > >> On Thu, Feb 14, 2019 at 10:43:57AM -0200, zatrazz via cfarm-users wrote: >> I think I hit a nasty kernel bug testing rt_sigreturn syscall while trying >> to understand why it was failing on powerpc64. > > Thanks for letting use know. > >> If anyone is curious I >> changed the way swapcontext is done for powerpc64 to pass the new context >> as r9: >> >> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S >> b/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S >> index af5b108..dcd97ca 100644 >> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S >> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S >> @@ -787,7 +787,7 @@ L(error_exit): >> R1 pointing at the dummy frame) state. We do have the ucontext >> address in R3, so simply copy R3 to R1 before the syscall. */ >> L(do_sigret): >> - mr r1,r3, >> + mr r9,r3, >> li r0,SYS_ify(rt_sigreturn) >> sc >> /* No return. */ >> >> And issue a program that calls swapcontext in a signal handler using the >> third argument (configured with SA_SIGINFO). This seems to be an issue with >> certain specific kernel version since newer kernels handle the context >> information without resorting in syscall argument handling. >> >> Anyway just a heads up that this is probably a nasty issue affecting >> CentOS7. > > Please tell linuxppc-dev@? > I will try to create a testcase and check on an emulated system first. > Please don't do such experiments on the cfarm systems (or any other shared > systems), btw... If you expect it may crash the system, don't do it, there > are other users that want to use the systems, too. But don't feel to bad, > this stuff happens, just take better care next time :-) > > > Segher I wasn’t fuzzing syscalls or anything and I did not expect to crash (sorry for that btw). The syscall is used on glibc for swapcontext since forever and I was trying to understand *why* it was added at first place since swapcontext for signal handler is UB. _______________________________________________ cfarm-users mailing list cfarm-users@lists.tetaneutral.net https://lists.tetaneutral.net/listinfo/cfarm-users