cvs commit: src/sys/i386/linux linux_ptrace.c

David Schultz das at FreeBSD.org
Sat Oct 9 10:10:49 PDT 2004


das         2004-10-09 17:10:48 UTC

  FreeBSD src repository

  Modified files:        (Branch: RELENG_5)
    sys/i386/linux       linux_ptrace.c 
  Log:
  MFC src/sys/i386/linux/linux_ptrace.c, v1.14
  | Fix the following race:
  |
  |   1. Process p1 is currently being swapped in.
  |   2. Process p2 calls linux_ptrace(PTRACE_GETFPXREGS, p1_pid, ...)
  |   3. After acquiring a reference to FIRST_THREAD_IN_PROC(p1),
  |      p2 blocks in faultin() while p1 finishes being swapped in.
  |      This means p2 won't get back the lock on p1 until after p1's
  |      threads are runnable.
  |   4. After p1 is swapped in, the first thread in p1 exits.
  |   5. p2 now uses its dangling reference to p1's first thread.
  
  Approved by:    re (scottl)
  
  Revision  Changes    Path
  1.13.2.1  +4 -3      src/sys/i386/linux/linux_ptrace.c


More information about the cvs-src mailing list