diff options
-rw-r--r-- | include/linux/ptrace.h | 5 | ||||
-rw-r--r-- | kernel/ptrace.c | 15 |
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); |