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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxxxxx
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@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel]     [Sparc Linux]     [DCCP]     [Linux ARM]     [Yosemite News]     [Linux SCSI]     [Linux x86_64]     [Linux for Ham Radio]

  Powered by Linux