From: David Meybohm <frumplestillskins@yahoo.co.uk>
To: linux-kernel@vger.kernel.org
Subject: do_execve calls destroy_context when init_new_context has failed
Date: Thu, 4 Nov 2004 02:44:11 -0500 [thread overview]
Message-ID: <20041104074411.GA30985@localhost> (raw)
There seems to be a discrepancy with fork vs. exec and what to do when
init_new_context() fails.
In do_execve(), there's a call to mmdrop() which calls destroy_context()
unconditionally if init_new_context() fails:
bprm->mm = mm_alloc();
if (!bprm->mm)
goto out_file;
retval = init_new_context(current, bprm->mm);
if (retval < 0)
goto out_mm;
[omitted]
out_mm:
if (bprm->mm)
mmdrop(bprm->mm);
...and then __mmdrop, which gets called by mmdrop(), does this:
void fastcall __mmdrop(struct mm_struct *mm)
{
BUG_ON(mm == &init_mm);
mm_free_pgd(mm);
destroy_context(mm);
free_mm(mm);
}
But there's a comment in kernel/fork.c in copy_mm(), where
init_new_context() is also called, that thinks calling destroy_context()
shouldn't be called:
if (init_new_context(tsk,mm))
goto fail_nocontext;
[omitted]
fail_nocontext:
/*
* If init_new_context() failed, we cannot use mmput() to free the mm
* because it calls destroy_context()
*/
mm_free_pgd(mm);
free_mm(mm);
return retval;
Who's right here? fork or exec?
--
next reply other threads:[~2004-11-04 7:53 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-11-04 7:44 David Meybohm [this message]
2004-11-04 20:27 ` do_execve calls destroy_context when init_new_context has failed Chris Wright
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=20041104074411.GA30985@localhost \
--to=frumplestillskins@yahoo.co.uk \
--cc=linux-kernel@vger.kernel.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