Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ee00560c authored by Denys Vlasenko's avatar Denys Vlasenko Committed by Linus Torvalds
Browse files

ptrace: remove PTRACE_SEIZE_DEVEL bit



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: default avatarDenys Vlasenko <vda.linux@googlemail.com>
Acked-by: default avatarTejun Heo <tj@kernel.org>
Acked-by: default avatarOleg Nesterov <oleg@redhat.com>
Cc: Pedro Alves <palves@redhat.com>
Cc: Jan Kratochvil <jan.kratochvil@redhat.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 5cdf389a
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
@@ -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)
+0 −15
Original line number Diff line number Diff line
@@ -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);