Re: [small patch] ia64 find thread for user rbs address

From: bibo,mao <bibo.mao_at_intel.com>
Date: 2006-11-16 20:42:47
Tony,
please discard this patch. It can not fix completely. If ptrace
caller wants to access vforked child process's user rbs, there
will be problem.

thanks
bibo,mao

bibo,mao wrote:
> hi,
>   I encountered one problem when running ptrace test case, the
> situation is this: traced process's syscall parameter needs to
> be accessed, but for sys_clone system call with clone_flag
> (CLONE_VFORK | CLONE_VM | SIGCHLD) parameter. this syscall's
> parameter accessing result is wrong.
>   The reason is that with clone_flag(CLONE_VFORK | CLONE_VM | SIGCHLD),
> cloned thread's mm point is the same, but tgid is different.
> without this patch find_thread_for_addr will return cloned thread,
> but not the thread which call sys_clone syscall.
> 
> thanks
> bibo,mao
> 
> --- 2.6.19-rc5.org/arch/ia64/kernel/ptrace.c    2006-11-16 16:23:31.000000000 +0800
> +++ 2.6.19-rc5/arch/ia64/kernel/ptrace.c        2006-11-16 16:25:07.000000000 +0800
> @@ -607,7 +607,7 @@ find_thread_for_addr (struct task_struct
>          */
>         list_for_each_safe(this, next, &current->children) {
>                 p = list_entry(this, struct task_struct, sibling);
> -               if (p->mm != mm)
> +               if (p->tgid != child->tgid)
>                         continue;
>                 if (thread_matches(p, addr)) {
>                         child = p;
> -
> To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Received on Thu Nov 16 20:43:06 2006

This archive was generated by hypermail 2.1.8 : 2006-11-16 20:43:18 EST