NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

PR/51630 CVS commit: src



The following reply was made to PR kern/51630; it has been noted by GNATS.

From: "Kamil Rytarowski" <kamil%netbsd.org@localhost>
To: gnats-bugs%gnats.NetBSD.org@localhost
Cc: 
Subject: PR/51630 CVS commit: src
Date: Tue, 1 May 2018 16:37:24 +0000

 Module Name:	src
 Committed By:	kamil
 Date:		Tue May  1 16:37:23 UTC 2018
 
 Modified Files:
 	src/lib/libc/sys: ptrace.2
 	src/sys/kern: kern_fork.c kern_sig.c sys_ptrace_common.c
 	src/sys/sys: signalvar.h
 	src/tests/lib/libc/sys: t_ptrace_wait.c
 
 Log Message:
 Implement PTRACE_VFORK
 
 Add support for tracing vfork(2) events in the context of ptrace(2).
 
 This API covers other frontends to fork1(9) like posix_spawn(2) or clone(2),
 if they cause parent to wait for exec(2) or exit(2) of the child.
 
 Changes:
  - Add new argument to sigswitch() determining whether we need to acquire
    the proc_lock or whether it's already held.
  - Refactor fork1(9) for fork(2) and vfork(2)-like events.
    Call sigswitch() from fork(1) for forking or vforking parent, instead of
    emitting kpsignal(9). We need to emit the signal and suspend the parent,
    returning to user and relock proc_lock.
  - Add missing prototype for proc_stop_done() in kern_sig.c.
  - Make sigswitch a public function accessible from other kernel code
    including <sys/signalvar.h>.
  - Remove an entry about unimplemented PTRACE_VFORK in the ptrace(2) man page.
  - Permin PTRACE_VFORK in the ptrace(2) frontend for userland.
  - Remove expected failure for unimplemented PTRACE_VFORK tests in the ATF
    ptrace(2) test-suite.
  - Relax signal routing constraints under a debugger for a vfork(2)ed child.
    This intended to protect from signaling a parent of a vfork(2)ed child that
    called PT_TRACE_ME, but wrongly misrouted other signals in vfork(2)
    use-cases.
 
 Add XXX comments about still existing problems and future enhancements:
  - correct vfork(2) + PT_TRACE_ME handling.
  - fork1(2) handling of scenarios when a process is collected in valid but
    rare cases.
 
 All ATF ptrace(2) fork[1-8] and vfork[1-8] tests pass.
 
 Fix PR kern/51630 by Kamil Rytarowski (myself).
 
 Sponsored by <The NetBSD Foundation>
 
 
 To generate a diff of this commit:
 cvs rdiff -u -r1.68 -r1.69 src/lib/libc/sys/ptrace.2
 cvs rdiff -u -r1.204 -r1.205 src/sys/kern/kern_fork.c
 cvs rdiff -u -r1.341 -r1.342 src/sys/kern/kern_sig.c
 cvs rdiff -u -r1.39 -r1.40 src/sys/kern/sys_ptrace_common.c
 cvs rdiff -u -r1.89 -r1.90 src/sys/sys/signalvar.h
 cvs rdiff -u -r1.37 -r1.38 src/tests/lib/libc/sys/t_ptrace_wait.c
 
 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.
 


Home | Main Index | Thread Index | Old Index