aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/linux/ptrace.h5
-rw-r--r--kernel/ptrace.c15
2 files changed, 1 insertions, 19 deletions
diff --git a/include/linux/ptrace.h b/include/linux/ptrace.h
index 30be18064dfd..407c678d2e30 100644
--- a/include/linux/ptrace.h
+++ b/include/linux/ptrace.h
@@ -51,9 +51,6 @@
51#define PTRACE_INTERRUPT 0x4207 51#define PTRACE_INTERRUPT 0x4207
52#define PTRACE_LISTEN 0x4208 52#define PTRACE_LISTEN 0x4208
53 53
54/* flags in @data for PTRACE_SEIZE */
55#define PTRACE_SEIZE_DEVEL 0x80000000 /* temp flag for development */
56
57/* Wait extended result codes for the above trace options. */ 54/* Wait extended result codes for the above trace options. */
58#define PTRACE_EVENT_FORK 1 55#define PTRACE_EVENT_FORK 1
59#define PTRACE_EVENT_VFORK 2 56#define PTRACE_EVENT_VFORK 2
@@ -64,7 +61,7 @@
64/* Extended result codes which enabled by means other than options. */ 61/* Extended result codes which enabled by means other than options. */
65#define PTRACE_EVENT_STOP 128 62#define PTRACE_EVENT_STOP 128
66 63
67/* options set using PTRACE_SETOPTIONS */ 64/* Options set using PTRACE_SETOPTIONS or using PTRACE_SEIZE @data param */
68#define PTRACE_O_TRACESYSGOOD 1 65#define PTRACE_O_TRACESYSGOOD 1
69#define PTRACE_O_TRACEFORK (1 << PTRACE_EVENT_FORK) 66#define PTRACE_O_TRACEFORK (1 << PTRACE_EVENT_FORK)
70#define PTRACE_O_TRACEVFORK (1 << PTRACE_EVENT_VFORK) 67#define PTRACE_O_TRACEVFORK (1 << PTRACE_EVENT_VFORK)
diff --git a/kernel/ptrace.c b/kernel/ptrace.c
index 4661c5bc07e5..ee8d49b9c309 100644
--- a/kernel/ptrace.c
+++ b/kernel/ptrace.c
@@ -237,25 +237,10 @@ static int ptrace_attach(struct task_struct *task, long request,
237 bool seize = (request == PTRACE_SEIZE); 237 bool seize = (request == PTRACE_SEIZE);
238 int retval; 238 int retval;
239 239
240 /*
241 * SEIZE will enable new ptrace behaviors which will be implemented
242 * gradually. SEIZE_DEVEL bit is used to prevent applications
243 * expecting full SEIZE behaviors trapping on kernel commits which
244 * are still in the process of implementing them.
245 *
246 * Only test programs for new ptrace behaviors being implemented
247 * should set SEIZE_DEVEL. If unset, SEIZE will fail with -EIO.
248 *
249 * Once SEIZE behaviors are completely implemented, this flag
250 * will be removed.
251 */
252 retval = -EIO; 240 retval = -EIO;
253 if (seize) { 241 if (seize) {
254 if (addr != 0) 242 if (addr != 0)
255 goto out; 243 goto out;
256 if (!(flags & PTRACE_SEIZE_DEVEL))
257 goto out;
258 flags &= ~(unsigned long)PTRACE_SEIZE_DEVEL;
259 if (flags & ~(unsigned long)PTRACE_O_MASK) 244 if (flags & ~(unsigned long)PTRACE_O_MASK)
260 goto out; 245 goto out;
261 flags = PT_PTRACED | PT_SEIZED | (flags << PT_OPT_FLAG_SHIFT); 246 flags = PT_PTRACED | PT_SEIZED | (flags << PT_OPT_FLAG_SHIFT);