Kawai, Hidehiro
76fdbb25f9
coredump masking: bound suid_dumpable sysctl
...
This patch series is version 5 of the core dump masking feature, which
controls which VMAs should be dumped based on their memory types and
per-process flags.
I adopted most of Andrew's suggestion at the previous version. He also
suggested using system call instead of /proc/<pid>/ interface, I decided to
use the latter continuously because adding new system call with pid argument
will give a big impact on the kernel.
You can access the per-process flags via /proc/<pid>/coredump_filter
interface. coredump_filter represents a bitmask of memory types, and if a bit
is set, VMAs of corresponding memory type are written into a core file when
the process is dumped. The bitmask is inherited from the parent process when
a process is created.
The original purpose is to avoid longtime system slowdown when a number of
processes which share a huge shared memory are dumped at the same time. To
achieve this purpose, this patch series adds an ability to suppress dumping
anonymous shared memory for specified processes. In this version, three other
memory types are also supported.
Here are the coredump_filter bits:
bit 0: anonymous private memory
bit 1: anonymous shared memory
bit 2: file-backed private memory
bit 3: file-backed shared memory
The default value of coredump_filter is 0x3. This means the new core dump
routine has the same behavior as conventional behavior by default.
In this version, coredump_filter bits and mm.dumpable are merged into
mm.flags, and it is accessed by atomic bitops.
The supported core file formats are ELF and ELF-FDPIC. ELF has been tested,
but ELF-FDPIC has not been built and tested because I don't have the test
environment.
This patch limits a value of suid_dumpable sysctl to the range of 0 to 2.
Signed-off-by: Hidehiro Kawai <hidehiro.kawai.ez@hitachi.com>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: David Howells <dhowells@redhat.com>
Cc: Hugh Dickins <hugh@veritas.com>
Cc: Nick Piggin <nickpiggin@yahoo.com.au>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-07-19 10:04:46 -07:00
..
irq
Improve behaviour of spurious IRQ detect
2007-07-16 09:05:46 -07:00
power
PM: Integrate beeping flag with existing acpi_sleep flags
2007-07-19 10:04:43 -07:00
time
kallsyms: make KSYM_NAME_LEN include space for trailing '\0'
2007-07-17 10:23:03 -07:00
.gitignore
acct.c
audit.c
Freezer: make kernel threads nonfreezable by default
2007-07-17 10:23:02 -07:00
audit.h
Audit: add TTY input auditing
2007-07-16 09:05:47 -07:00
auditfilter.c
kernel/auditfilter: kill bogus uninit'd-var compiler warning
2007-07-17 16:17:59 -04:00
auditsc.c
mm: variable length argument support
2007-07-19 10:04:45 -07:00
capability.c
compat.c
signal/timer/event: timerfd compat code
2007-05-11 08:29:36 -07:00
configs.c
use simple_read_from_buffer in kernel/
2007-05-09 12:30:49 -07:00
cpu.c
HOTPLUG: Add CPU_DYING notifier
2007-07-16 12:05:49 +03:00
cpuset.c
usermodehelper: Tidy up waiting
2007-07-18 08:47:40 -07:00
delayacct.c
sched: update delay-accounting to use CFS's precise stats
2007-07-09 18:52:00 +02:00
die_notifier.c
move die notifier handling to common code
2007-05-08 11:15:04 -07:00
dma.c
exec_domain.c
exit.c
Freezer: avoid freezing kernel threads prematurely
2007-07-19 10:04:42 -07:00
extable.c
fork.c
Freezer: make kernel threads nonfreezable by default
2007-07-17 10:23:02 -07:00
futex.c
mm: fault feedback #2
2007-07-19 10:04:41 -07:00
futex_compat.c
Revert "futex_requeue_pi optimization"
2007-06-18 09:48:41 -07:00
hrtimer.c
[HRTIMER] Fix cpu pointer arg to clockevents_notify()
2007-07-16 17:29:56 -07:00
itimer.c
The scheduled -EINVAL for invalid timevals in setitimer
2007-05-08 11:15:13 -07:00
kallsyms.c
kallsyms: make KSYM_NAME_LEN include space for trailing '\0'
2007-07-17 10:23:03 -07:00
Kconfig.hz
Kconfig.preempt
Fix trivial typos in Kconfig* files
2007-05-09 07:12:20 +02:00
kexec.c
kdump/kexec: calculate note size at compile time
2007-05-08 11:15:07 -07:00
kfifo.c
is_power_of_2: kernel/kfifo.c
2007-07-16 09:05:50 -07:00
kmod.c
PM: prevent frozen user mode helpers from failing the freezing of tasks
2007-07-19 10:04:42 -07:00
kprobes.c
jprobes: make jprobes a little safer for users
2007-07-19 10:04:44 -07:00
ksysfs.c
kthread.c
mm: fix improper .init-type section references
2007-07-16 09:05:36 -07:00
latency.c
lockdep.c
kallsyms: make KSYM_NAME_LEN include space for trailing '\0'
2007-07-17 10:23:03 -07:00
lockdep_internals.h
lockdep_proc.c
Makefile
user namespace: add the framework
2007-07-16 09:05:47 -07:00
module.c
kallsyms: make KSYM_NAME_LEN include space for trailing '\0'
2007-07-17 10:23:03 -07:00
mutex-debug.c
mutex-debug.h
mutex.c
wrap access to thread_info
2007-05-09 12:30:56 -07:00
mutex.h
nsproxy.c
namespace: ensure clone_flags are always stored in an unsigned long
2007-07-16 09:05:48 -07:00
panic.c
Report that kernel is tainted if there was an OOPS
2007-07-17 10:23:02 -07:00
params.c
sysfs: kill unnecessary attribute->owner
2007-07-11 16:09:06 -07:00
pid.c
namespace: ensure clone_flags are always stored in an unsigned long
2007-07-16 09:05:48 -07:00
posix-cpu-timers.c
sched: make posix-cpu-timers use CFS's accounting information
2007-07-09 18:51:58 +02:00
posix-timers.c
posix-timers: Prevent softirq starvation by small intervals and SIG_IGN
2007-06-21 15:57:04 -07:00
printk.c
kernel/printk.c: document possible deadlock against scheduler
2007-07-16 09:05:52 -07:00
profile.c
Detach sched.h from mm.h
2007-05-21 09:18:19 -07:00
ptrace.c
PTRACE_POKEDATA consolidation
2007-07-17 10:23:03 -07:00
rcupdate.c
Add suspend-related notifications for CPU hotplug
2007-05-09 12:30:56 -07:00
rcutorture.c
Freezer: make kernel threads nonfreezable by default
2007-07-17 10:23:02 -07:00
relay.c
relay: fixup kerneldoc comment
2007-07-13 14:14:28 +02:00
resource.c
rtmutex-debug.c
FUTEX: Tidy up the code
2007-07-16 09:05:49 -07:00
rtmutex-debug.h
rtmutex-tester.c
Freezer: make kernel threads nonfreezable by default
2007-07-17 10:23:02 -07:00
rtmutex.c
FUTEX: Tidy up the code
2007-07-16 09:05:49 -07:00
rtmutex.h
rtmutex_common.h
FUTEX: Tidy up the code
2007-07-16 09:05:49 -07:00
rwsem.c
Lockdep treats down_write_trylock like regular down_write
2007-05-08 11:15:09 -07:00
sched.c
use the new percpu interface for shared data
2007-07-19 10:04:45 -07:00
sched_debug.c
[PATCH] sched: remove stale version info from kernel/sched_debug.c
2007-07-13 10:10:41 -07:00
sched_fair.c
sched: cfs core, kernel/sched_fair.c
2007-07-09 18:51:58 +02:00
sched_idletask.c
sched: cfs core, kernel/sched_idletask.c
2007-07-09 18:51:58 +02:00
sched_rt.c
sched: cfs core, kernel/sched_rt.c
2007-07-09 18:51:58 +02:00
sched_stats.h
sched: update delay-accounting to use CFS's precise stats
2007-07-09 18:52:00 +02:00
seccomp.c
make seccomp zerocost in schedule
2007-07-16 09:05:50 -07:00
signal.c
vdso: print fatal signals
2007-07-16 09:05:43 -07:00
softirq.c
Freezer: make kernel threads nonfreezable by default
2007-07-17 10:23:02 -07:00
softlockup.c
Freezer: make kernel threads nonfreezable by default
2007-07-17 10:23:02 -07:00
spinlock.c
srcu.c
stacktrace.c
stop_machine.c
Fix stop_machine_run problem with naughty real time process
2007-07-16 09:05:41 -07:00
sys.c
PM: Introduce pm_power_off_prepare
2007-07-19 10:04:42 -07:00
sys_ni.c
diskquota: 32bit quota tools on 64bit architectures
2007-07-16 09:05:48 -07:00
sysctl.c
coredump masking: bound suid_dumpable sysctl
2007-07-19 10:04:46 -07:00
taskstats.c
taskstats: add context-switch counters
2007-07-16 09:05:46 -07:00
time.c
sys_time() speedup
2007-07-16 09:05:48 -07:00
timer.c
Slab allocators: Replace explicit zeroing with __GFP_ZERO
2007-07-17 10:23:02 -07:00
tsacct.c
uid16.c
header cleaning: don't include smp_lock.h when not used
2007-05-08 11:15:07 -07:00
user.c
user namespace: add the framework
2007-07-16 09:05:47 -07:00
user_namespace.c
fix create_new_namespaces() return value
2007-07-16 09:05:47 -07:00
utsname.c
namespace: ensure clone_flags are always stored in an unsigned long
2007-07-16 09:05:48 -07:00
utsname_sysctl.c
remove CONFIG_UTS_NS and CONFIG_IPC_NS
2007-07-16 09:05:47 -07:00
wait.c
Fix occurrences of "the the "
2007-05-09 08:57:56 +02:00
workqueue.c
destroy_workqueue() can livelock
2007-07-17 10:23:03 -07:00