From: Oleg Nesterov <oleg@redhat.com>
To: Mike Frysinger <vapier@gentoo.org>
Cc: Andrew Morton <akpm@linux-foundation.org>,
linux-sh@vger.kernel.org, Paul Mundt <lethal@linux-sh.org>,
uclinux-dist-devel@blackfin.uclinux.org,
linux-kernel@vger.kernel.org, David Howells <dhowells@redhat.com>,
Roland McGrath <roland@redhat.com>
Subject: Re: [PATCH v2] ptrace: unify FDPIC implementations
Date: Fri, 21 May 2010 16:26:59 +0000 [thread overview]
Message-ID: <20100521162659.GA16193@redhat.com> (raw)
In-Reply-To: <1274431345-22366-1-git-send-email-vapier@gentoo.org>
On 05/21, Mike Frysinger wrote:
>
> The Blackfin/FRV/SuperH guys all have the same exact FDPIC ptrace code in
> their arch handlers (since they were probably copied & pasted). Since
> these ptrace interfaces are an arch independent aspect of the FDPIC code,
> unify them in the common ptrace code so new FDPIC ports don't need to copy
> and paste this fundamental stuff yet again.
>
> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
> Acked-by: Roland McGrath <roland@redhat.com>
> Acked-by: David Howells <dhowells@redhat.com>
> Acked-by: Paul Mundt <lethal@linux-sh.org>
I think the patch is nice too.
But,
> --- a/kernel/ptrace.c
> +++ b/kernel/ptrace.c
> @@ -596,6 +596,26 @@ int ptrace_request(struct task_struct *child, long request,
> ret = ptrace_detach(child, data);
> break;
>
> +#ifdef CONFIG_BINFMT_ELF_FDPIC
> + case PTRACE_GETFDPIC: {
> + unsigned long tmp = 0;
> +
> + switch (addr) {
> + case PTRACE_GETFDPIC_EXEC:
> + tmp = child->mm->context.exec_fdpic_loadmap;
> + break;
> + case PTRACE_GETFDPIC_INTERP:
> + tmp = child->mm->context.interp_fdpic_loadmap;
This looks unsafe. What protect child->mm if ptrace() races with SIGKILL ?
Of course, I do not blame this patch, the code was copied from arch/, but
I think we need another patch which checks ->mm != NULL under task_lock()
on top of this one?
Oleg.
WARNING: multiple messages have this Message-ID (diff)
From: Oleg Nesterov <oleg@redhat.com>
To: Mike Frysinger <vapier@gentoo.org>
Cc: Andrew Morton <akpm@linux-foundation.org>,
linux-sh@vger.kernel.org, Paul Mundt <lethal@linux-sh.org>,
uclinux-dist-devel@blackfin.uclinux.org,
linux-kernel@vger.kernel.org, David Howells <dhowells@redhat.com>,
Roland McGrath <roland@redhat.com>
Subject: Re: [PATCH v2] ptrace: unify FDPIC implementations
Date: Fri, 21 May 2010 18:26:59 +0200 [thread overview]
Message-ID: <20100521162659.GA16193@redhat.com> (raw)
In-Reply-To: <1274431345-22366-1-git-send-email-vapier@gentoo.org>
On 05/21, Mike Frysinger wrote:
>
> The Blackfin/FRV/SuperH guys all have the same exact FDPIC ptrace code in
> their arch handlers (since they were probably copied & pasted). Since
> these ptrace interfaces are an arch independent aspect of the FDPIC code,
> unify them in the common ptrace code so new FDPIC ports don't need to copy
> and paste this fundamental stuff yet again.
>
> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
> Acked-by: Roland McGrath <roland@redhat.com>
> Acked-by: David Howells <dhowells@redhat.com>
> Acked-by: Paul Mundt <lethal@linux-sh.org>
I think the patch is nice too.
But,
> --- a/kernel/ptrace.c
> +++ b/kernel/ptrace.c
> @@ -596,6 +596,26 @@ int ptrace_request(struct task_struct *child, long request,
> ret = ptrace_detach(child, data);
> break;
>
> +#ifdef CONFIG_BINFMT_ELF_FDPIC
> + case PTRACE_GETFDPIC: {
> + unsigned long tmp = 0;
> +
> + switch (addr) {
> + case PTRACE_GETFDPIC_EXEC:
> + tmp = child->mm->context.exec_fdpic_loadmap;
> + break;
> + case PTRACE_GETFDPIC_INTERP:
> + tmp = child->mm->context.interp_fdpic_loadmap;
This looks unsafe. What protect child->mm if ptrace() races with SIGKILL ?
Of course, I do not blame this patch, the code was copied from arch/, but
I think we need another patch which checks ->mm != NULL under task_lock()
on top of this one?
Oleg.
next prev parent reply other threads:[~2010-05-21 16:26 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-11 9:36 [PATCH] ptrace: unify FDPIC implementations Mike Frysinger
2010-02-11 9:36 ` Mike Frysinger
2010-02-11 20:24 ` Roland McGrath
2010-02-11 20:24 ` Roland McGrath
2010-02-11 21:07 ` David Howells
2010-02-11 23:26 ` Paul Mundt
2010-02-11 23:26 ` Paul Mundt
2010-02-16 0:30 ` Mike Frysinger
2010-02-16 0:30 ` Mike Frysinger
2010-02-16 1:10 ` Paul Mundt
2010-02-16 1:10 ` Paul Mundt
2010-02-16 8:12 ` Mike Frysinger
2010-02-16 8:12 ` Mike Frysinger
2010-05-21 8:42 ` [PATCH v2] " Mike Frysinger
2010-05-21 8:42 ` Mike Frysinger
2010-05-21 16:26 ` Oleg Nesterov [this message]
2010-05-21 16:26 ` Oleg Nesterov
2010-05-21 18:35 ` Roland McGrath
2010-05-21 18:35 ` Roland McGrath
2010-05-22 14:54 ` [PATCH -mm 0/1] (Was: ptrace: unify FDPIC implementations) Oleg Nesterov
2010-05-22 16:53 ` Oleg Nesterov
2010-05-22 14:55 ` [PATCH -mm 1/1] ptrace: PTRACE_GETFDPIC: fix the unsafe usage of Oleg Nesterov
2010-05-22 16:54 ` [PATCH -mm 1/1] ptrace: PTRACE_GETFDPIC: fix the unsafe usage of child->mm Oleg Nesterov
2010-05-24 4:33 ` [Uclinux-dist-devel] [PATCH -mm 1/1] ptrace: PTRACE_GETFDPIC: fix Mike Frysinger
2010-05-24 4:33 ` [Uclinux-dist-devel] [PATCH -mm 1/1] ptrace: PTRACE_GETFDPIC: fix the unsafe usage of child->mm Mike Frysinger
2010-05-24 8:38 ` [PATCH -mm 1/1] ptrace: PTRACE_GETFDPIC: fix the unsafe usage of Roland McGrath
2010-05-24 8:38 ` [PATCH -mm 1/1] ptrace: PTRACE_GETFDPIC: fix the unsafe usage of child->mm Roland McGrath
2010-05-24 14:36 ` David Howells
2010-05-24 14:36 ` David Howells
2010-05-24 15:14 ` [PATCH -mm 1/1] ptrace: PTRACE_GETFDPIC: fix the unsafe usage Oleg Nesterov
2010-05-24 15:14 ` [PATCH -mm 1/1] ptrace: PTRACE_GETFDPIC: fix the unsafe usage of child->mm Oleg Nesterov
2010-05-24 23:42 ` [PATCH -mm 1/1] ptrace: PTRACE_GETFDPIC: fix the unsafe usage Roland McGrath
2010-05-24 23:42 ` [PATCH -mm 1/1] ptrace: PTRACE_GETFDPIC: fix the unsafe usage of child->mm Roland McGrath
2010-05-25 1:29 ` [Uclinux-dist-devel] [PATCH -mm 1/1] ptrace: PTRACE_GETFDPIC: fix Mike Frysinger
2010-05-25 1:29 ` [Uclinux-dist-devel] [PATCH -mm 1/1] ptrace: PTRACE_GETFDPIC: fix the unsafe usage of child->mm Mike Frysinger
2010-05-25 19:11 ` [Uclinux-dist-devel] [PATCH -mm 1/1] ptrace: PTRACE_GETFDPIC: fix Roland McGrath
2010-05-25 19:11 ` [Uclinux-dist-devel] [PATCH -mm 1/1] ptrace: PTRACE_GETFDPIC: fix the unsafe usage of child->mm Roland McGrath
2010-05-25 9:14 ` David Howells
2010-05-25 9:14 ` David Howells
2010-05-25 10:23 ` [PATCH -mm 1/1] ptrace: PTRACE_GETFDPIC: fix the unsafe usage Oleg Nesterov
2010-05-25 10:23 ` [PATCH -mm 1/1] ptrace: PTRACE_GETFDPIC: fix the unsafe usage of child->mm Oleg Nesterov
2010-05-25 12:24 ` David Howells
2010-05-25 12:24 ` David Howells
2010-05-25 12:30 ` [PATCH -mm 1/1] ptrace: PTRACE_GETFDPIC: fix the unsafe usage Oleg Nesterov
2010-05-25 12:30 ` [PATCH -mm 1/1] ptrace: PTRACE_GETFDPIC: fix the unsafe usage of child->mm Oleg Nesterov
2010-05-25 17:28 ` [PATCH -mm 1/1] ptrace: PTRACE_GETFDPIC: fix the unsafe usage of Mike Frysinger
2010-05-25 17:28 ` [PATCH -mm 1/1] ptrace: PTRACE_GETFDPIC: fix the unsafe usage of child->mm Mike Frysinger
2010-05-26 12:40 ` [PATCH -mm 1/1] ptrace: PTRACE_GETFDPIC: fix the unsafe usage Oleg Nesterov
2010-05-26 12:40 ` [PATCH -mm 1/1] ptrace: PTRACE_GETFDPIC: fix the unsafe usage of child->mm Oleg Nesterov
2010-05-27 19:55 ` [PATCH 0/2] blackfin: ptrace mm/sram_list fixes Oleg Nesterov
2010-05-27 19:55 ` Oleg Nesterov
2010-05-27 19:56 ` [PATCH 1/2] blackfin: ptrace: fix the unsafe usage of mm/find_vma Oleg Nesterov
2010-05-27 19:56 ` [PATCH 1/2] blackfin: ptrace: fix the unsafe usage of mm/find_vma in is_user_addr_valid() Oleg Nesterov
2010-05-27 19:56 ` [PATCH 2/2] blackfin: use ->mmap_sem to protect Oleg Nesterov
2010-05-27 19:56 ` [PATCH 2/2] blackfin: use ->mmap_sem to protect mm_context_t->sram_list Oleg Nesterov
2010-05-27 20:21 ` [PATCH 0/2] blackfin: ptrace mm/sram_list fixes Mike Frysinger
2010-05-27 20:21 ` Mike Frysinger
2010-05-28 19:43 ` Oleg Nesterov
2010-05-28 19:43 ` Oleg Nesterov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100521162659.GA16193@redhat.com \
--to=oleg@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=dhowells@redhat.com \
--cc=lethal@linux-sh.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sh@vger.kernel.org \
--cc=roland@redhat.com \
--cc=uclinux-dist-devel@blackfin.uclinux.org \
--cc=vapier@gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.