All of lore.kernel.org
 help / color / mirror / Atom feed
* Bug in fs/gs_base PTRACE_SETREGS on pre-4.7 kernels
@ 2016-11-18  7:58 Keno Fischer
  0 siblings, 0 replies; only message in thread
From: Keno Fischer @ 2016-11-18  7:58 UTC (permalink / raw)
  To: linux-kernel; +Cc: luto

Hi Andy (&list),

this is more of a heads up than a bug report, since it turns out you
already fixed this in

731e33e: x86/arch_prctl/64: Remove FSBASE/GSBASE < 4G optimization

In any case, without that commit, trying to use PTRACE_SETREGS to set
either fs_base, or gs_base to 0 when it was previously <4G, but wasn't
0, fails to take effect in the tracee.

This is caused by the `if (child->thread.fs != value)`, in
`ptrace.c:putreg`, which skips the `do_arch_prctl` call. Of course the
problem here is that while the optimization is in place `fs` is set to
0, but does not actually hold the fs base, so the call is incorrectly
skipped.

In any case, figured you may be interested that the commit changes behavior
(for the better - not complaining ;), even if user code does not go
out of its way to confuse ptrace.

Keno

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2016-11-18  7:58 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-11-18  7:58 Bug in fs/gs_base PTRACE_SETREGS on pre-4.7 kernels Keno Fischer

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.