mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
To: Roland McGrath <roland@redhat.com>
Cc: Andrew Morton <akpm@osdl.org>, Linus Torvalds <torvalds@osdl.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] notify_parent and ptrace cleanup
Date: Thu, 26 Aug 2004 02:51:26 +0900	[thread overview]
Message-ID: <877jrnm7hd.fsf@devron.myhome.or.jp> (raw)
In-Reply-To: <200408250243.i7P2h7hq014081@magilla.sf.frob.com>

Roland McGrath <roland@redhat.com> writes:

> I believe I understand the case you are referring to now that I've looked
> at it.  But I think this is the first I've heard about this issue.

ptrace() is frangible, and racy. And looks like few things can't improve
without user visible change. So, I'm thinking I would like to rewrite
it by another interface.

> While ptrace_getsiginfo is examining child->last_siginfo, another processor
> could be resuming that child via SIGCONT so that it clears last_siginfo and
> reuses the stack space it was pointing to.  With the right timing of the
> race, the ptrace_getsiginfo call could crash with an unexpected kernel-mode
> null pointer reference.  This is what you are talking about, right?

Yes. Or siginfo is changed while it's using.


[...]

Quick read... Looks good to me

Thanks.

> +	read_lock_irq(&tasklist_lock); /* Protects child->sighand.  */
                 ^^^^
_irq is unneeded?

> +	if (unlikely(child->sighand == NULL))
> +		ret = -EINVAL;
> +	else {
> +		spin_lock_irq(&child->sighand->siglock);
> +		if (child->last_siginfo == NULL)
> +			ret = -EINVAL;
> +		else
> +			*child->last_siginfo = info;
> +		spin_unlock_irq(&child->sighand->siglock);
> +	}
> +	read_unlock_irq(&tasklist_lock);
-- 
OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>

  reply	other threads:[~2004-08-25 17:52 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-08-18  0:40 [PATCH] notify_parent cleanup Roland McGrath
2004-08-18  6:44 ` Andrew Morton
2004-08-21  1:09   ` [PATCH] notify_parent and ptrace cleanup Roland McGrath
2004-08-21 11:47     ` OGAWA Hirofumi
2004-08-25  2:43       ` Roland McGrath
2004-08-25 17:51         ` OGAWA Hirofumi [this message]
2004-08-25 18:08           ` Roland McGrath
2004-08-25 19:48             ` OGAWA Hirofumi
2004-08-25 19:54               ` Linus Torvalds
2004-08-25 20:20                 ` Roland McGrath
2004-08-25 20:53                   ` OGAWA Hirofumi
2004-08-25 21:02                     ` Linus Torvalds
2004-08-25 21:07                       ` Roland McGrath
2004-08-25 21:45                         ` OGAWA Hirofumi
2004-08-19  4:26 ` [PATCH] notify_parent cleanup OGAWA Hirofumi
2004-08-19 20:59   ` Roland McGrath
2004-08-19 22:01     ` OGAWA Hirofumi
2004-08-19 22:04       ` Roland McGrath

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=877jrnm7hd.fsf@devron.myhome.or.jp \
    --to=hirofumi@mail.parknet.co.jp \
    --cc=akpm@osdl.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=roland@redhat.com \
    --cc=torvalds@osdl.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome