]> git.baikalelectronics.ru Git - kernel.git/commit
x86/ptrace: Prevent ptrace from clearing the FS/GS selector
authorChang S. Bae <chang.seok.bae@intel.com>
Thu, 28 May 2020 20:13:47 +0000 (16:13 -0400)
committerThomas Gleixner <tglx@linutronix.de>
Thu, 18 Jun 2020 13:46:59 +0000 (15:46 +0200)
commit497e31e5a65250db526cbce7f1e615c35b02d8d1
treeb143d64ae6990fc1d93cc0412907c520fd4ee300
parent74a27a5f5a99e6b5adfd790053b6cccac3270c76
x86/ptrace: Prevent ptrace from clearing the FS/GS selector

When a ptracer writes a ptracee's FS/GSBASE with a different value, the
selector is also cleared. This behavior is not correct as the selector
should be preserved.

Update only the base value and leave the selector intact. To simplify the
code further remove the conditional checking for the same value as this
code is not performance critical.

The only recognizable downside of this change is when the selector is
already nonzero on write. The base will be reloaded according to the
selector. But the case is highly unexpected in real usages.

[ tglx: Massage changelog ]

Suggested-by: Andy Lutomirski <luto@kernel.org>
Signed-off-by: Chang S. Bae <chang.seok.bae@intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lkml.kernel.org/r/9040CFCD-74BD-4C17-9A01-B9B713CF6B10@intel.com
Link: https://lkml.kernel.org/r/20200528201402.1708239-2-sashal@kernel.org
arch/x86/kernel/ptrace.c