mirror of
https://github.com/torvalds/linux.git
synced 2026-06-30 10:05:51 +02:00
When PTRACE_O_TRACEEXEC is used, a ptrace call to fetch the registers at the PTRACE_EVENT_EXEC stop (PTRACE_PEEKUSR) will oops in CHECK_FULL_REGS. With recent versions, "gdb --args /bin/sh -c 'exec /bin/true'" and "run" at the (gdb) prompt is sufficient to produce this. I also have written an isolated test case, see https://bugzilla.redhat.com/show_bug.cgi?id=301791#c15. This change fixes the problem by clearing the low bit of pt_regs.trap in start_thread so that FULL_REGS is true again. This is correct since all of the GPRs that "full" refers to are cleared in start_thread. Signed-off-by: Roland McGrath <roland@redhat.com> Signed-off-by: Paul Mackerras <paulus@samba.org> |
||
|---|---|---|
| .. | ||
| vdso32 | ||
| vdso64 | ||
| align.c | ||
| asm-offsets.c | ||
| audit.c | ||
| binfmt_elf32.c | ||
| btext.c | ||
| compat_audit.c | ||
| cpu_setup_6xx.S | ||
| cpu_setup_pa6t.S | ||
| cpu_setup_ppc970.S | ||
| cputable.c | ||
| crash_dump.c | ||
| crash.c | ||
| dma_64.c | ||
| entry_32.S | ||
| entry_64.S | ||
| firmware.c | ||
| fpu.S | ||
| head_4xx.S | ||
| head_8xx.S | ||
| head_32.S | ||
| head_44x.S | ||
| head_64.S | ||
| head_booke.h | ||
| head_fsl_booke.S | ||
| ibmebus.c | ||
| idle_6xx.S | ||
| idle_power4.S | ||
| idle.c | ||
| init_task.c | ||
| io.c | ||
| iomap.c | ||
| iommu.c | ||
| irq.c | ||
| isa-bridge.c | ||
| kprobes.c | ||
| l2cr_6xx.S | ||
| legacy_serial.c | ||
| lparcfg.c | ||
| lparmap.c | ||
| machine_kexec_32.c | ||
| machine_kexec_64.c | ||
| machine_kexec.c | ||
| Makefile | ||
| misc_32.S | ||
| misc_64.S | ||
| misc.S | ||
| module_32.c | ||
| module_64.c | ||
| msi.c | ||
| nvram_64.c | ||
| of_device.c | ||
| of_platform.c | ||
| paca.c | ||
| pci_32.c | ||
| pci_64.c | ||
| pci_dn.c | ||
| pci-common.c | ||
| pmc.c | ||
| ppc_ksyms.c | ||
| ppc32.h | ||
| proc_ppc64.c | ||
| process.c | ||
| prom_init.c | ||
| prom_parse.c | ||
| prom.c | ||
| ptrace.c | ||
| ptrace32.c | ||
| rtas_flash.c | ||
| rtas_pci.c | ||
| rtas-proc.c | ||
| rtas-rtc.c | ||
| rtas.c | ||
| semaphore.c | ||
| setup_32.c | ||
| setup_64.c | ||
| setup-common.c | ||
| setup.h | ||
| signal_32.c | ||
| signal_64.c | ||
| signal.c | ||
| signal.h | ||
| smp-tbsync.c | ||
| smp.c | ||
| suspend.c | ||
| swsusp_32.S | ||
| swsusp_64.c | ||
| swsusp_asm64.S | ||
| swsusp.c | ||
| sys_ppc32.c | ||
| syscalls.c | ||
| sysfs.c | ||
| systbl.S | ||
| tau_6xx.c | ||
| time.c | ||
| traps.c | ||
| udbg_16550.c | ||
| udbg.c | ||
| vdso.c | ||
| vecemu.c | ||
| vector.S | ||
| vio.c | ||
| vmlinux.lds.S | ||