Roland McGrath
6ea65ff79c
[PATCH] i386: clear segment register padding in core dumps
...
The segment register slots in struct pt_regs are padded to 32 bits.
Some of these are stored with instructions like "pushl %es", which
leaves the high 16 bits as they were. So the high bits of these
fields in struct pt_regs contain kernel stack garbage. These bits are
ignored by everything and never leak to user space, except in core
dumps. The user struct pt_regs is always at the base of the thread's
kernel stack and so it seems unlikely the information that leaks from
here is ever worthwhile so as to be a security concern, but I'm not
sure about that. It has been this way for ages; userland consumers of
core dumps all mask off these high bits themselves. So it is not urgent.
This change masks off the padding bits of the segment register slots
in core dumps. ptrace already masks off these high bits, so this
makes the values in core dumps consistent with what ptrace would
report just before the process died.
As I read the processor manuals, the cs and ss values will always be
padded with zero bits rather than stack garbage. But unlike "pushl %es",
this is not simple to test with a userland program. So I added the two
instructions rather than wonder if they are really never necessary.
I think that x86_64 does not have this problem (for either 32-bit or
64-bit processes). It only uses "mov" instructions from segment
registers, which zero-extend.
Signed-off-by: Roland McGrath <roland@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-03-23 15:32:58 -07:00
..
mach-bigsmp
[PATCH] x86: convert bigsmp to use flat physical mode
2006-01-06 08:33:37 -08:00
mach-default
[PATCH] clockevents: i386 drivers
2007-02-16 08:13:59 -08:00
mach-es7000
ACPICA: Remove duplicate table definitions (non-conflicting), cont
2007-02-02 21:14:29 -05:00
mach-generic
[PATCH] x86: sutomatically enable bigsmp when we have more than 8 CPUs
2005-09-05 00:06:10 -07:00
mach-numaq
[PATCH] Do not enforce unique IO_APIC_ID check for xAPIC systems (i386)
2005-06-23 09:45:09 -07:00
mach-summit
[PATCH] i386: Fix compilation with UP genericarch
2006-11-28 20:12:59 +01:00
mach-visws
[PATCH] visws build fix
2006-10-28 11:30:52 -07:00
mach-voyager
[PATCH] clockevents: i386 drivers
2007-02-16 08:13:59 -08:00
8253pit.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
a.out.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
acpi.h
ACPI: cleanup: make disable_acpi() valid w/o CONFIG_ACPI
2007-02-13 00:09:13 -05:00
agp.h
[PATCH] i386: inline asm cleanup
2005-09-05 00:06:11 -07:00
alternative-asm.i
Remove all inclusions of <linux/config.h>
2006-10-04 03:38:54 -04:00
alternative.h
[PATCH] paravirt: Patch inline replacements for paravirt intercepts
2006-12-07 02:14:08 +01:00
apic.h
[PATCH] i386: add command line option "local_apic_timer_c2_ok"
2007-03-23 10:21:02 -07:00
apicdef.h
x86_64: Remove stale lapic definition from apicdef.h
2006-04-01 22:50:03 -05:00
arch_hooks.h
IRQ: Maintain regs pointer globally rather than passing to IRQ handlers
2006-10-05 15:10:12 +01:00
atomic.h
[PATCH] Numerous fixes to kernel-doc info in source files.
2007-02-11 10:51:32 -08:00
auxvec.h
[PATCH] auxiliary vector cleanups
2005-09-07 16:57:21 -07:00
bitops.h
[PATCH] Numerous fixes to kernel-doc info in source files.
2007-02-11 10:51:32 -08:00
boot.h
[PATCH] i386: Restore CONFIG_PHYSICAL_START option
2007-01-05 23:55:23 -08:00
bug.h
[PATCH] Generic BUG for i386
2006-12-08 08:28:39 -08:00
bugs.h
[PATCH] i386: improve sched_clock() on i686
2007-02-13 13:26:22 +01:00
byteorder.h
Don't include linux/config.h from anywhere else in include/
2006-04-26 12:56:16 +01:00
cache.h
Don't include linux/config.h from anywhere else in include/
2006-04-26 12:56:16 +01:00
cacheflush.h
[PATCH] Optimize D-cache alias handling on fork
2006-12-13 09:27:08 -08:00
checksum.h
[NET]: I386 checksum annotations and cleanups.
2006-12-02 21:23:19 -08:00
cpu.h
[PATCH] i386: introduce the mechanism of disabling cpu hotplug control
2006-12-07 02:14:10 +01:00
cpufeature.h
[PATCH] i386: i386 add Intel BTS cpufeature bit and detection (take 2)
2006-12-07 02:14:11 +01:00
cputime.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
current.h
[PATCH] i386: Implement "current" with the PDA
2006-12-07 02:14:03 +01:00
debugreg.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
delay.h
[PATCH] vmi: paravirt drop udelay op
2007-03-05 07:57:52 -08:00
desc.h
[PATCH] i386: Rename cpu_gdt_descr and remove extern declaration from smpboot.c
2007-02-13 13:26:26 +01:00
device.h
ACPI: Change ACPI to use dev_archdata instead of firmware_data
2006-12-01 14:52:01 -08:00
div64.h
[PATCH] include/asm-i386/: "extern inline" -> "static inline"
2005-09-10 10:06:34 -07:00
dma-mapping.h
[PATCH] Pass struct dev pointer to dma_cache_sync()
2006-12-07 08:39:41 -08:00
dma.h
Don't include linux/config.h from anywhere else in include/
2006-04-26 12:56:16 +01:00
dmi.h
[PATCH] x86_64: Implement early DMI scanning
2006-03-25 09:10:55 -08:00
dwarf2.h
[PATCH] i386/x86-64: Work around gcc bug with noreturn functions in unwinder
2006-09-26 10:52:41 +02:00
e820.h
[PATCH] compile error of register_memory()
2006-12-22 08:55:49 -08:00
edac.h
[PATCH] EDAC: core EDAC support code
2006-01-18 19:20:31 -08:00
elf.h
[PATCH] i386: clear segment register padding in core dumps
2007-03-23 15:32:58 -07:00
emergency-restart.h
[PATCH] i386: Implement machine_emergency_reboot
2005-07-26 14:35:42 -07:00
errno.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
fcntl.h
[PATCH] Clean up struct flock64 definitions
2005-09-07 16:57:38 -07:00
fixmap.h
[PATCH] Fix CONFIG_COMPAT_VDSO
2007-01-26 13:50:58 -08:00
floppy.h
IRQ: Maintain regs pointer globally rather than passing to IRQ handlers
2006-10-05 15:10:12 +01:00
frame.i
Remove all inclusions of <linux/config.h>
2006-10-04 03:38:54 -04:00
futex.h
[PATCH] mm: pagefault_{disable,enable}()
2006-12-07 08:39:21 -08:00
genapic.h
[PATCH] x86: fix the irqbalance quirk for E7320/E7520/E7525
2006-12-07 02:14:10 +01:00
hardirq.h
Don't include linux/config.h from anywhere else in include/
2006-04-26 12:56:16 +01:00
highmem.h
Don't include linux/config.h from anywhere else in include/
2006-04-26 12:56:16 +01:00
hpet.h
[PATCH] clockevents: i386 drivers
2007-02-16 08:13:59 -08:00
hw_irq.h
[PATCH] i386/x86_64: Remove global IO_APIC_VECTOR
2006-10-08 12:24:02 -07:00
hypertransport.h
[PATCH] Initial generic hypertransport interrupt support
2006-10-04 07:55:29 -07:00
i387.h
[PATCH] i386: add sleazy FPU optimization
2006-12-07 02:14:01 +01:00
i8253.h
[PATCH] clockevents: i386 drivers
2007-02-16 08:13:59 -08:00
i8259.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
ide.h
[PATCH] ide: more conversion to pci_get APIs
2006-12-08 08:29:03 -08:00
intel_arch_perfmon.h
[PATCH] x86: i386/x86-64 Add nmi watchdog support for new Intel CPUs
2006-09-26 10:52:27 +02:00
io.h
[PATCH] kill eth_io_copy_and_sum()
2007-02-09 09:14:07 -08:00
io_apic.h
[PATCH] io_apic.h needs apicdef.h
2007-03-05 07:57:50 -08:00
ioctl.h
[PATCH] Generic ioctl.h
2006-01-10 08:01:34 -08:00
ioctls.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
ipc.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
ipcbuf.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
irq.h
[PATCH] x86: fix the irqbalance quirk for E7320/E7520/E7525
2006-12-07 02:14:10 +01:00
irq_regs.h
[PATCH] i386: Store the interrupt regs pointer in the PDA
2006-12-07 02:14:03 +01:00
irqflags.h
[PATCH] paravirt: Patch inline replacements for paravirt intercepts
2006-12-07 02:14:08 +01:00
ist.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
k8.h
[PATCH] x86_64: Clean and enhance up K8 northbridge access code
2006-06-26 10:48:15 -07:00
Kbuild
[PATCH] cleanup asm/setup.h userspace visibility
2006-12-07 08:39:46 -08:00
kdebug.h
[PATCH] Notify page fault call chain for i386
2006-06-26 09:58:22 -07:00
kexec.h
[PATCH] i386: Avoid overwriting the current pgd (V4, i386)
2006-09-26 10:52:38 +02:00
kmap_types.h
Don't include linux/config.h from anywhere else in include/
2006-04-26 12:56:16 +01:00
kprobes.h
[PATCH] IA64: kprobe invalidate icache of jump buffer
2006-07-31 13:28:38 -07:00
ldt.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
linkage.h
[PATCH] i386: fix prevent_tail_call
2005-05-26 16:16:16 -07:00
local.h
i386: improve and correct inline asm memory constraints
2006-07-08 15:24:18 -07:00
math_emu.h
[PATCH] i386: PDA: Fix math emulator for new pt_regs
2006-12-07 02:14:03 +01:00
mc146818rtc.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
mca.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
mca_dma.h
[PATCH] kernel-doc for kernel/dma.c
2006-10-03 08:03:41 -07:00
mce.h
[PATCH] i386: Move mce_disabled to asm/mce.h
2007-02-13 13:26:26 +01:00
mman.h
[PATCH] add asm-generic/mman.h
2006-02-15 15:32:22 -08:00
mmu.h
[PATCH] vdso: randomize the i386 vDSO by moving it into a vma
2006-06-27 17:32:38 -07:00
mmu_context.h
[PATCH] i386: Convert i386 PDA code to use %fs
2007-02-13 13:26:20 +01:00
mmx.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
mmzone.h
[PATCH] silence unused pgdat warning from alloc_bootmem_node and friends
2006-12-07 08:39:23 -08:00
module.h
[PATCH] i386: always enable regparm
2006-12-07 02:14:12 +01:00
mpspec.h
[PATCH] clockevents: i386 drivers
2007-02-16 08:13:59 -08:00
mpspec_def.h
[PATCH] x86-64: remove remaining pc98 code
2006-12-07 02:14:19 +01:00
msgbuf.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
msidef.h
[PATCH] genirq: i386 irq: Move msi message composition into io_apic.c
2006-10-04 07:55:28 -07:00
msr.h
Merge master.kernel.org:/pub/scm/linux/kernel/git/davej/cpufreq
2007-02-26 14:17:50 -08:00
mtrr.h
[PATCH] Don't trigger full rebuild via CONFIG_MTRR
2006-06-23 07:42:56 -07:00
mutex.h
[PATCH] i386: Remove lock section support in mutex.h
2006-09-26 10:52:31 +02:00
namei.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
nmi.h
Disable NMI watchdog by default properly
2007-03-14 17:53:43 -07:00
numa.h
[PATCH] x86-64: Use ACPI PXM to parse PCI<->node assignments
2005-09-12 10:49:57 -07:00
numaq.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
page.h
[PATCH] Fix CONFIG_COMPAT_VDSO
2007-01-26 13:50:58 -08:00
param.h
[PATCH] cleanup asm/setup.h userspace visibility
2006-12-07 08:39:46 -08:00
paravirt.h
[PATCH] fastcall still doesn't make sense in paravirt
2007-03-14 15:27:49 -07:00
parport.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
pci-direct.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
pci.h
Don't include linux/config.h from anywhere else in include/
2006-04-26 12:56:16 +01:00
pda.h
[PATCH] i386: Convert i386 PDA code to use %fs
2007-02-13 13:26:20 +01:00
percpu.h
[PATCH] i386: espfix cleanup
2006-12-07 02:14:01 +01:00
pgalloc.h
[PATCH] MM: page allocation hooks for VMI backend
2007-02-13 13:26:21 +01:00
pgtable-2level-defs.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
pgtable-2level.h
[PATCH] paravirt: fix missing pte update
2006-12-07 02:14:09 +01:00
pgtable-3level-defs.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
pgtable-3level.h
[PATCH] paravirt: fix missing pte update
2006-12-07 02:14:09 +01:00
pgtable.h
[PATCH] vmi: fix highpte
2007-03-05 07:57:52 -08:00
poll.h
[PATCH] POLLRDHUP/EPOLLRDHUP handling for half-closed devices notifications
2006-03-25 08:22:56 -08:00
posix_types.h
i386: improve and correct inline asm memory constraints
2006-07-08 15:24:18 -07:00
processor.h
Revert "[PATCH] i386: add idle notifier"
2007-02-26 09:21:46 -08:00
ptrace-abi.h
[PATCH] Split i386 and x86_64 ptrace.h
2006-09-26 08:49:10 -07:00
ptrace.h
[PATCH] i386: Profile pc badness
2007-02-13 13:26:21 +01:00
resource.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
rtc.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
rwlock.h
[PATCH] i386: Clean up spin/rwlocks
2006-09-26 10:52:32 +02:00
rwsem.h
[PATCH] lockdep: name some old style locks
2006-12-07 08:39:36 -08:00
scatterlist.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
seccomp.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
sections.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
segment.h
[PATCH] i386: Profile pc badness
2007-02-13 13:26:21 +01:00
semaphore.h
[PATCH] i386: Use early clobbers for semaphores now
2006-09-27 14:39:51 -07:00
sembuf.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
serial.h
Don't include linux/config.h from anywhere else in include/
2006-04-26 12:56:16 +01:00
setup.h
[PATCH] i386: Remove extern declaration from mm/discontig.c, put in header.
2007-02-13 13:26:26 +01:00
shmbuf.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
shmparam.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
sigcontext.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
siginfo.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
signal.h
[PATCH] headers_check: move inclusion of <linux/linkage.h> in <asm-i386/signal.h>
2006-09-13 07:32:15 -07:00
smp.h
[PATCH] i386: SMP boot hook for paravirt
2007-02-13 13:26:21 +01:00
socket.h
[AF_UNIX]: Datagram getpeersec
2006-06-29 16:58:06 -07:00
sockios.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
sparsemem.h
[PATCH] sparsemem memory model for i386
2005-06-23 09:45:05 -07:00
spinlock.h
[PATCH] paravirt: Patch inline replacements for paravirt intercepts
2006-12-07 02:14:08 +01:00
spinlock_types.h
[PATCH] Remove 'volatile' from spinlock_types
2006-12-06 14:39:53 -08:00
srat.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
stacktrace.h
[PATCH] i386: Do stacktracer conversion too
2006-09-26 10:52:34 +02:00
stat.h
[PATCH] 2TB files: st_blocks is invalid when calling stat64
2006-03-26 08:57:00 -08:00
statfs.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
string.h
Don't include linux/config.h from anywhere else in include/
2006-04-26 12:56:16 +01:00
suspend.h
Merge branch 'for-linus' of git://one.firstfloor.org/home/andi/git/linux-2.6
2006-12-07 08:59:11 -08:00
sync_bitops.h
[PATCH] i386: fix typo in sync_constant_test_bit()'s name
2007-03-16 19:25:07 -07:00
system.h
[PATCH] paravirt: header and stubs for paravirtualisation
2006-12-07 02:14:07 +01:00
termbits.h
[PATCH] tty: preparatory structures for termios revamp
2006-12-08 08:28:56 -08:00
termios.h
[PATCH] consolidate line discipline number definitions
2007-02-11 10:51:26 -08:00
therm_throt.h
[PATCH] x86: Add a cumulative thermal throttle event counter.
2006-09-26 10:52:42 +02:00
thread_info.h
[PATCH] PM: Fix SMP races in the freezer
2006-12-13 09:05:49 -08:00
time.h
[PATCH] vmi: pit override
2007-03-05 07:57:52 -08:00
timer.h
[PATCH] vmi: cpu cycles fix
2007-03-05 07:57:52 -08:00
timex.h
[PATCH] Time: i386 Conversion - part 2: Rework TSC Support
2006-06-26 09:58:21 -07:00
tlb.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
tlbflush.h
[PATCH] paravirt: Add MMU virtualization to paravirt_ops
2006-12-07 02:14:08 +01:00
topology.h
[PATCH] sched: remove SMT nice
2007-03-05 07:57:51 -08:00
tsc.h
[PATCH] i386: make x86_64 tsc header require i386 rather than vice-versa
2007-03-06 09:30:24 -08:00
types.h
[PATCH] Centralise definitions of sector_t and blkcnt_t
2006-12-04 19:41:15 -08:00
uaccess.h
[PATCH] fix sparse warnings from {asm,net}/checksum.h
2007-02-11 10:51:31 -08:00
ucontext.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
unaligned.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
unistd.h
[PATCH] remove kernel syscalls
2006-12-07 08:39:37 -08:00
unwind.h
Remove stack unwinder for now
2006-12-15 08:47:51 -08:00
user.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
vga.h
[PATCH] vgacon: make VGA_MAP_MEM take size, remove extra use
2006-06-22 15:05:58 -07:00
vic.h
[VOYAGER] fix up ptregs removal mess
2006-10-12 22:25:03 -05:00
vm86.h
[PATCH] i386: Update sys_vm86 to cope with changed pt_regs and %gs usage
2006-12-07 02:14:03 +01:00
vmi.h
[PATCH] vmi: apic ops
2007-03-05 07:57:52 -08:00
vmi_time.h
[PATCH] Fix vmi time header bug
2007-03-12 16:36:16 -07:00
voyager.h
[VOYAGER] fix up attribute packed specifiers in voyager.h
2006-10-12 22:23:18 -05:00
xor.h
[PATCH] i386: inline asm cleanup
2005-09-05 00:06:11 -07:00