opnsense-src/tests/sys/kern
Mariusz Zaborski fd631bcd95 procdesc: fix reparenting when the debugger is attached
The process is reparented to the debugger while it is attached.
  B          B
 /   ---->   |
A          A D

Every time when the process is reparented, it is added to the orphan list
of the previous parent:

A->orphan = B
D->orphan = NULL

When the A process will close the process descriptor to the B process,
the B process will be reparented to the init process.
  B            B - init
  |   ---->
A D          A   D

A->orphan = B
D->orphan = B

In this scenario, the B process is in the orphan list of A and D.

When the last process descriptor is closed instead of reparenting
it to the reaper let it stay with the debugger process and set
our previews parent to the reaper.

Add test case for this situation.
Notice that without this patch the kernel will crash with this test case:
panic: orphan 0xfffff8000e990530 of 0xfffff8000e990000 has unexpected oppid 1

Reviewed by:	markj, kib
MFC after:	1 month
Differential Revision:	https://reviews.freebsd.org/D20361
2019-08-05 20:15:46 +00:00
..
acct DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
execve DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
pipe Revert r337929 2018-08-16 22:04:00 +00:00
coredump_phnum_helper.c Add test case for >65535 segment coredumps 2016-11-01 19:18:16 +00:00
coredump_phnum_test.sh Fix sys.kern.coredump_phnum_test.coredump_phnum on i386 2019-04-22 11:21:20 +00:00
kcov.c Allow the kcov buffer to be mmaped multiple times. 2019-02-21 10:11:15 +00:00
kern_copyin.c Revert r337929 2018-08-16 22:04:00 +00:00
kern_descrip_test.c kern_descrip_test: Fix trivial buffer overrun with readlink(2) 2016-05-12 03:44:29 +00:00
libkern_crc32.c Separate kernel crc32() implementation to its own header (gsb_crc32.h) and 2019-06-17 19:49:08 +00:00
Makefile Separate kernel crc32() implementation to its own header (gsb_crc32.h) and 2019-06-17 19:49:08 +00:00
Makefile.depend DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
Makefile.inc Add include Makefiles for tests/sys/{fs,kern,kqueue,mac}/... 2017-01-14 20:21:21 +00:00
pdeathsig.c Remove redundant pipe from pdeathsig.c test. 2018-04-27 16:34:28 +00:00
pdeathsig_helper.c Rename PROC_PDEATHSIG_SET -> PROC_PDEATHSIG_CTL and PROC_PDEATHSIG_GET 2018-04-20 15:19:27 +00:00
ptrace_test.c procdesc: fix reparenting when the debugger is attached 2019-08-05 20:15:46 +00:00
reaper.c Reparent a child of pdfork(2) to its reaper when the procdesc is closed. 2018-10-16 20:06:56 +00:00
sigaltstack.c Maybe make gcc happy 2018-11-30 23:47:57 +00:00
sys_getrandom.c Appease GCC 4.2 2018-03-21 04:44:19 +00:00
unix_passfd_test.c Revert r337929 2018-08-16 22:04:00 +00:00
unix_seqpacket_test.c Send all of data, not just a portion of it 2017-05-28 09:21:28 +00:00
unix_socketpair_test.c Drop "All rights reserved" from the files I own 2019-03-11 22:23:56 +00:00
waitpid_nohang.c wait: Do not copyout uninitialized status/rusage/wrusage. 2016-09-09 21:58:48 +00:00