1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-17 10:26:15 +00:00
freebsd/sys/kern
Matthew Dillon fa7dd9c5bc Change the way ELF coredumps are handled. Instead of unconditionally
skipping read-only pages, which can result in valuable non-text-related
data not getting dumped, the ELF loader and the dynamic loader now mark
read-only text pages NOCORE and the coredump code only checks (primarily) for
complete inaccessibility of the page or NOCORE being set.

Certain applications which map large amounts of read-only data will
produce much larger cores.  A new sysctl has been added,
debug.elf_legacy_coredump, which will revert to the old behavior.

This commit represents collaborative work by all parties involved.
The PR contains a program demonstrating the problem.

PR:		kern/45994
Submitted by:	"Peter Edwards" <pmedwards@eircom.net>, Archie Cobbs <archie@dellroad.org>
Reviewed by:	jdp, dillon
MFC after:	7 days
2002-12-16 19:24:43 +00:00
..
bus_if.m Add two interfaces to allow for busses to report the pnpinfo for 2002-10-07 05:06:38 +00:00
clock_if.m
device_if.m
genassym.sh
imgact_aout.c Use the fields in the sysentvec and in the vm map header in place of the 2002-09-21 22:07:17 +00:00
imgact_elf32.c Infrastructure tweaks to allow having both an Elf32 and an Elf64 executable 2002-07-20 02:56:12 +00:00
imgact_elf64.c Infrastructure tweaks to allow having both an Elf32 and an Elf64 executable 2002-07-20 02:56:12 +00:00
imgact_elf.c Change the way ELF coredumps are handled. Instead of unconditionally 2002-12-16 19:24:43 +00:00
imgact_elfN.c Infrastructure tweaks to allow having both an Elf32 and an Elf64 executable 2002-07-20 02:56:12 +00:00
imgact_gzip.c Use the fields in the sysentvec and in the vm map header in place of the 2002-09-21 22:07:17 +00:00
imgact_shell.c Remove reference to struct execve_args from struct imgact, which 2002-11-05 01:59:56 +00:00
inflate.c
init_main.c Fix typo in comment. It's SYSINIT, not SYSINT. 2002-11-30 22:15:30 +00:00
init_sysent.c Regenerate system calls (swapoff added) 2002-12-15 19:19:15 +00:00
kern_acct.c unwrap lines made short enough by SCARGS removal 2002-12-14 08:18:06 +00:00
kern_acl.c unwrap lines made short enough by SCARGS removal 2002-12-14 08:18:06 +00:00
kern_alq.c - Export the alq daemon thread pointer. 2002-09-26 07:38:56 +00:00
kern_clock.c 1. Support versioning and wall clock in kse mailbox, 2002-11-18 01:59:31 +00:00
kern_condvar.c More work on the interaction between suspending and sleeping threads. 2002-10-25 07:11:12 +00:00
kern_conf.c Don't allow dev_stdclone(9) to accept minors larger than the system is 2002-10-05 17:10:28 +00:00
kern_context.c Add getcontext, setcontext, and swapcontext as system calls. 2002-11-16 06:35:53 +00:00
kern_descrip.c Drop filedesc lock and acquire Giant around calls to malloc() and free(). 2002-12-13 09:59:40 +00:00
kern_environment.c remove syscallarg(). 2002-12-14 02:07:32 +00:00
kern_event.c Minor comment typo fix. 2002-10-29 20:51:44 +00:00
kern_exec.c remove syscallarg(). 2002-12-14 02:07:32 +00:00
kern_exit.c Fix a refcount race with the vmspace structure. In order to prevent 2002-12-15 18:50:04 +00:00
kern_fork.c Unbreak the KSE code. Keep track of zobie threads using the Per-CPU storage 2002-12-10 02:33:45 +00:00
kern_idle.c - Create a new scheduler api that is defined in sys/sched.h 2002-10-12 05:32:24 +00:00
kern_intr.c Instead of (sizeof(source_buffer) - 1) bytes, copy at most 2002-10-17 21:02:02 +00:00
kern_jail.c remove syscallarg(). 2002-12-14 02:07:32 +00:00
kern_kse.c Unbreak the KSE code. Keep track of zobie threads using the Per-CPU storage 2002-12-10 02:33:45 +00:00
kern_kthread.c Some kernel threads try to do significant work, and the default KSTACK_PAGES 2002-10-02 07:44:29 +00:00
kern_ktr.c - Export the alq daemon thread pointer. 2002-09-26 07:38:56 +00:00
kern_ktrace.c Some kernel threads try to do significant work, and the default KSTACK_PAGES 2002-10-02 07:44:29 +00:00
kern_linker.c unwrap lines made short enough by SCARGS removal 2002-12-14 08:18:06 +00:00
kern_lock.c Remove a race condition / deadlock from snapshots. When 2002-11-30 19:00:51 +00:00
kern_lockf.c - Fix a bunch of casts to long which were truncating off_t's. 2002-11-07 21:56:05 +00:00
kern_mac.c SCARGS removal take II. 2002-12-14 01:56:26 +00:00
kern_malloc.c Introduce malloc_last_fail() which returns the number of seconds since 2002-11-01 18:58:12 +00:00
kern_mib.c Move the definitions of the hw.physmem, hw.usermem and hw.availpages 2002-11-07 23:57:17 +00:00
kern_module.c SCARGS removal take II. 2002-12-14 01:56:26 +00:00
kern_mtxpool.c
kern_mutex.c Disable the kernacc() check in mtx_validate() until such time that kernacc 2002-10-25 08:40:20 +00:00
kern_ntptime.c Remove an unused variable. 2002-10-11 10:36:22 +00:00
kern_physio.c Change iov_base's type from char *' to the standard void *'. All 2002-10-11 14:58:34 +00:00
kern_poll.c Increase size of ifnet.if_flags from 16 bits (short) to 32 bits (int). To avoid 2002-08-18 07:05:00 +00:00
kern_proc.c - Add the new sched_pctcpu() function to the sched_* api. 2002-11-21 09:30:55 +00:00
kern_prot.c Include file cleanup; mac.h and malloc.h at one point had ordering 2002-08-01 17:47:56 +00:00
kern_resource.c - Create a new scheduler api that is defined in sys/sched.h 2002-10-12 05:32:24 +00:00
kern_sema.c
kern_shutdown.c During shutdown explain what the numbers following the 'syncing 2002-11-18 02:41:03 +00:00
kern_sig.c Split 4.x and 5.x signal handling so that we can keep 4.x signal 2002-10-25 19:10:58 +00:00
kern_subr.c Use pmap_remove_all() instead of pmap_remove() before freeing the page 2002-11-28 08:44:26 +00:00
kern_switch.c Did you ever notice how stupid bugs show up much clearer 2002-10-14 20:43:02 +00:00
kern_sx.c
kern_synch.c Unbreak the KSE code. Keep track of zobie threads using the Per-CPU storage 2002-12-10 02:33:45 +00:00
kern_syscalls.c
kern_sysctl.c Implement mac_check_system_sysctl(), a MAC Framework entry point to 2002-10-27 07:12:34 +00:00
kern_tc.c Introduce a "time_uptime" global variable which holds the time since boot 2002-11-01 18:52:20 +00:00
kern_thread.c Unbreak the KSE code. Keep track of zobie threads using the Per-CPU storage 2002-12-10 02:33:45 +00:00
kern_time.c SCARGS removal take II. 2002-12-14 01:56:26 +00:00
kern_timeout.c Fix a format buglet. 2002-09-05 11:42:03 +00:00
kern_uuid.c Include <sys/systm.h> for the declarations of many things instead of 2002-08-22 12:47:22 +00:00
kern_xxx.c more caddr_t removal. 2002-06-29 02:00:02 +00:00
ksched.c headers should not really include "opt_foo.h" (in this case opt_posix.h). 2002-11-15 22:55:06 +00:00
link_elf_obj.c Merge kld access control checks from the MAC tree: these access control 2002-11-19 22:12:42 +00:00
link_elf.c Merge kld access control checks from the MAC tree: these access control 2002-11-19 22:12:42 +00:00
linker_if.m
Make.tags.inc
Makefile
makesyscalls.sh The syscall names are string constants, so make them consts. 2002-10-29 15:47:06 +00:00
md4c.c
md5c.c We have memset() and memcpy() in the kernel now, so we don't need to 2002-10-20 22:33:42 +00:00
p1003_1b.c headers should not really include "opt_foo.h" (in this case opt_posix.h). 2002-11-15 22:55:06 +00:00
posix4_mib.c Rework the sysconf(3) interaction with aio: 2002-11-17 04:15:34 +00:00
sched_4bsd.c - Add the new sched_pctcpu() function to the sched_* api. 2002-11-21 09:30:55 +00:00
subr_acl_posix1e.c unwrap lines made short enough by SCARGS removal 2002-12-14 08:18:06 +00:00
subr_autoconf.c
subr_blist.c This is David Schultz's swapoff code which I am finally able to commit. 2002-12-15 19:17:57 +00:00
subr_bus.c devd kernel improvements: 2002-11-30 00:49:43 +00:00
subr_clist.c
subr_clock.c Use the CPU_* OID constants instead of OID_AUTO for the clock-related 2002-08-07 19:43:54 +00:00
subr_devstat.c Use strlcpy() instead of strncpy() to copy NUL terminated strings 2002-10-17 20:03:38 +00:00
subr_disk.c This checkin reimplements the io-request priority hack in a way 2002-10-22 00:59:49 +00:00
subr_disklabel.c (This commit touches about 15 disk device drivers in a very consistent 2002-09-20 19:36:05 +00:00
subr_diskmbr.c Split MBR and PC98 on-disk sliceformats out from disklabel.h, step 1: 2002-10-01 07:24:55 +00:00
subr_diskslice.c Use strlcpy() instead of strncpy() to copy NUL terminated strings 2002-10-17 20:03:38 +00:00
subr_eventhandler.c Wrap a line longer than 80 characters. 2002-07-19 17:44:44 +00:00
subr_hints.c
subr_kobj.c
subr_log.c Make the msg_size, msg_bufx and msg_bufr memebers of struct msgbuf 2002-11-14 16:11:12 +00:00
subr_mbuf.c o Initialise each mbuf's m_len to 0 in m_getm(); mb_put_mem() depends 2002-11-27 04:26:00 +00:00
subr_mchain.c Remove the hto(be|le)[slq] and (be|le)toh[slq] macros defined in 2002-12-16 16:20:06 +00:00
subr_module.c
subr_param.c Change hw.physmem and hw.usermem to unsigned long like they used to be 2002-08-30 04:04:37 +00:00
subr_pcpu.c
subr_power.c Use ISO 9X variadic macro format; arguments are not optional, just 2002-07-15 17:17:56 +00:00
subr_prf.c Make the msg_size, msg_bufx and msg_bufr memebers of struct msgbuf 2002-11-14 16:11:12 +00:00
subr_prof.c Don't #error if we are lint. 2002-10-01 13:15:11 +00:00
subr_rman.c Make the rman_{get,set}_* macros into real functions. The macros 2002-11-27 03:55:22 +00:00
subr_rtc.c Use the CPU_* OID constants instead of OID_AUTO for the clock-related 2002-08-07 19:43:54 +00:00
subr_sbuf.c Add the new function "sbuf_done()" which returns non-zero if the sbuf is 2002-10-04 09:58:17 +00:00
subr_scanf.c Fix mis-indentation. 2002-10-02 09:09:25 +00:00
subr_smp.c Completely redo thread states. 2002-09-11 08:13:56 +00:00
subr_taskqueue.c If we fail to write to a vnode during a ktrace write, then we drop all 2002-08-01 13:35:38 +00:00
subr_trap.c To reduce per-return overhead of userret(), call into 2002-11-08 19:00:17 +00:00
subr_turnstile.c Disable the kernacc() check in mtx_validate() until such time that kernacc 2002-10-25 08:40:20 +00:00
subr_witness.c Correct an assertion in the code to traverse the list of locks to find an 2002-11-11 16:36:20 +00:00
subr_xxx.c
sys_generic.c SCARGS removal take II. 2002-12-14 01:56:26 +00:00
sys_pipe.c Remove a KASSERT I added in 1.73 to catch uninitialized pipes. 2002-10-14 21:15:04 +00:00
sys_process.c Add a missing PROC_UNLOCK in ptrace() for the PT_IO case. 2002-10-16 16:28:33 +00:00
sys_socket.c Update the st_size reported via stat(2) to accurately reflect the amount 2002-11-01 21:31:13 +00:00
syscalls.c Regenerate system calls (swapoff added) 2002-12-15 19:19:15 +00:00
syscalls.master This is David Schultz's swapoff code which I am finally able to commit. 2002-12-15 19:17:57 +00:00
sysv_ipc.c
sysv_msg.c o Clear a high bit of ipc_perm.seq so msgget(3) never returns a 2002-12-15 09:41:46 +00:00
sysv_sem.c Don't leak memory in semop(2). (Fix a bug I introduced in rev 1.55.) 2002-10-19 02:07:35 +00:00
sysv_shm.c return foo -> return (foo) 2002-08-15 02:10:12 +00:00
tty_compat.c
tty_conf.c
tty_cons.c Use strlcpy() instead of strncpy() to copy NUL terminated strings 2002-10-17 20:03:38 +00:00
tty_pty.c
tty_subr.c
tty_tty.c Pass active_cred and file_cred into the MAC framework explicitly 2002-08-19 19:04:53 +00:00
tty.c In an SMP environment post-Giant it is no longer safe to blindly 2002-10-03 02:13:00 +00:00
uipc_accf.c
uipc_cow.c Change iov_base's type from char *' to the standard void *'. All 2002-10-11 14:58:34 +00:00
uipc_domain.c
uipc_jumbo.c o Lock page queue accesses by vm_page_free(). 2002-07-21 19:06:46 +00:00
uipc_mbuf2.c correct function names in KASSERT's for 2 m_tag routines 2002-11-26 17:59:16 +00:00
uipc_mbuf.c Replace aux mbufs with packet tags: 2002-10-16 01:54:46 +00:00
uipc_proto.c
uipc_sem.c Be consistent about funtions being static. 2002-10-16 10:42:13 +00:00
uipc_sockbuf.c Spotted a couple of places where the socket buffer's counters were being 2002-11-05 18:52:25 +00:00
uipc_socket2.c Spotted a couple of places where the socket buffer's counters were being 2002-11-05 18:52:25 +00:00
uipc_socket.c Small SO_RCVTIMEO and SO_SNDTIMEO values are mistakenly taken to be zero. 2002-11-27 13:34:04 +00:00
uipc_syscalls.c Integrate mac_check_socket_send() and mac_check_socket_receive() 2002-10-06 14:39:15 +00:00
uipc_usrreq.c Trim extraneous #else and #endif MAC comments per style(9). 2002-10-28 21:17:53 +00:00
vfs_acl.c unwrap lines made short enough by SCARGS removal 2002-12-14 08:18:06 +00:00
vfs_aio.c Rework the sysconf(3) interaction with aio: 2002-11-17 04:15:34 +00:00
vfs_bio.c The buffer daemon cannot skip over buffers owned by locked inodes as 2002-12-14 01:35:30 +00:00
vfs_cache.c Split up __getcwd so that kernel callers of the internal version 2002-09-02 22:40:30 +00:00
vfs_cluster.c - Use %j to print intmax_t values. 2002-11-07 22:41:08 +00:00
vfs_default.c Don't try to be cute and save a call/return by implementing a degenerate 2002-10-24 17:55:49 +00:00
vfs_export.c Partial backout of 1.318, remove error handling added because it may be 2002-06-30 05:23:58 +00:00
vfs_extattr.c unwrap lines made short enough by SCARGS removal 2002-12-14 08:18:06 +00:00
vfs_init.c We don't need to check the return value of malloc() against 2002-06-22 21:44:11 +00:00
vfs_lookup.c Add a new 'NOMACCHECK' flag to namei() NDINIT flags, which permits the 2002-10-19 21:25:51 +00:00
vfs_mount.c unwrap lines made short enough by SCARGS removal 2002-12-14 08:18:06 +00:00
vfs_subr.c Perform vm_object_lock() and vm_object_unlock() around 2002-12-15 05:41:56 +00:00
vfs_syscalls.c unwrap lines made short enough by SCARGS removal 2002-12-14 08:18:06 +00:00
vfs_vnops.c Within ufs, the ffs_sync and ffs_fsync functions did not always 2002-10-25 00:20:37 +00:00
vnode_if.src - We don't need any automated lock checking for vop_islocked. 2002-09-26 00:31:16 +00:00