lkml.org 
[lkml]   [2012]   [Feb]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 5/5] ptrace: remove PTRACE_SEIZE_DEVEL bit
On 02/10, Denys Vlasenko wrote:
>
> PTRACE_SEIZE code is tested and ready for production use,
> remove the code which requires special bit in data argument
> to make PTRACE_SEIZE work.
>
> Strace team prepares for a new release of strace, and we
> would like to ship the code which uses PTRACE_SEIZE,
> preferably after this change goes into released kernel.
>
> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>

Personally I agree with this change. PTRACE_SEIZE_DEVEL complicates
the testing/development for the user-space.

Tejun, do you agree?

Acked-by: Oleg Nesterov <oleg@redhat.com>

-
> include/linux/ptrace.h | 5 +----
> kernel/ptrace.c | 15 ---------------
> 2 files changed, 1 insertions(+), 19 deletions(-)
>
> diff --git a/include/linux/ptrace.h b/include/linux/ptrace.h
> index ec6571c..6dffe18 100644
> --- a/include/linux/ptrace.h
> +++ b/include/linux/ptrace.h
> @@ -51,9 +51,6 @@
> #define PTRACE_INTERRUPT 0x4207
> #define PTRACE_LISTEN 0x4208
>
> -/* flags in @data for PTRACE_SEIZE */
> -#define PTRACE_SEIZE_DEVEL 0x80000000 /* temp flag for development */
> -
> /* Wait extended result codes for the above trace options. */
> #define PTRACE_EVENT_FORK 1
> #define PTRACE_EVENT_VFORK 2
> @@ -64,7 +61,7 @@
> /* Extended result codes which enabled by means other than options. */
> #define PTRACE_EVENT_STOP 128
>
> -/* options set using PTRACE_SETOPTIONS */
> +/* Options set using PTRACE_SETOPTIONS or using PTRACE_SEIZE @data param */
> #define PTRACE_O_TRACESYSGOOD 1
> #define PTRACE_O_TRACEFORK (1 << PTRACE_EVENT_FORK)
> #define PTRACE_O_TRACEVFORK (1 << PTRACE_EVENT_VFORK)
> diff --git a/kernel/ptrace.c b/kernel/ptrace.c
> index 99a18a0..32846f7 100644
> --- a/kernel/ptrace.c
> +++ b/kernel/ptrace.c
> @@ -237,25 +237,10 @@ static int ptrace_attach(struct task_struct *task, long request,
> bool seize = (request == PTRACE_SEIZE);
> int retval;
>
> - /*
> - * SEIZE will enable new ptrace behaviors which will be implemented
> - * gradually. SEIZE_DEVEL bit is used to prevent applications
> - * expecting full SEIZE behaviors trapping on kernel commits which
> - * are still in the process of implementing them.
> - *
> - * Only test programs for new ptrace behaviors being implemented
> - * should set SEIZE_DEVEL. If unset, SEIZE will fail with -EIO.
> - *
> - * Once SEIZE behaviors are completely implemented, this flag
> - * will be removed.
> - */
> retval = -EIO;
> if (seize) {
> if (addr != 0)
> goto out;
> - if (!(flags & PTRACE_SEIZE_DEVEL))
> - goto out;
> - flags &= ~(unsigned long)PTRACE_SEIZE_DEVEL;
> if (flags & ~(unsigned long)PTRACE_O_MASK)
> goto out;
> flags = PT_PTRACED | PT_SEIZED | (flags << PT_OPT_FLAG_SHIFT);
> --
> 1.7.7.6
>



\
 
 \ /
  Last update: 2012-02-10 18:33    [W:0.054 / U:13.436 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site