ADDR_COMPAT_LAYOUT breaks PTRACE_SEIZE

From
Andreas Schwab <hidden>
Date
2015-03-22 15:39:49
Also in
lkml
On ppc64, a process running with the ADDR_COMPAT_LAYOUT personality
causes ptrace(PTRACE_SEIZE) to hang in the kernel, unkillable.

#include <stdlib.h>
#include <unistd.h>
#include <signal.h>
#include <sys/personality.h>
#include <sys/ptrace.h>
#include <sys/wait.h>

int
main (void)
{
  pid_t child;

  personality (ADDR_COMPAT_LAYOUT);
  child = fork ();
  if (child == 0)
    {
      kill (getpid (), SIGSTOP);
      exit (0);
    }

  ptrace (PTRACE_SEIZE, child, NULL, NULL);
  wait (NULL);
  ptrace (PTRACE_CONT, child, NULL, NULL);
}

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help