From: Jeff Dike <jdike@addtoit.com>
To: uml-user <user-mode-linux-user@lists.sourceforge.net>,
uml-devel <user-mode-linux-devel@lists.sourceforge.net>
Subject: [uml-devel] [RFC PATCH 1/12] SKAS4 - Work around compat PTRACE_GETSIGINFO bug
Date: Thu, 15 May 2008 16:11:16 -0400 [thread overview]
Message-ID: <20080515201116.GA12339@c2.user-mode-linux.org> (raw)
copy_siginfo_to_user correctly strips off the high bits of si->si_code
before copying it to userspace.
Unfortunately, ptrace32_siginfo calls copy_siginfo_to_user to put the
siginfo into a temporary userspace buffer and counts on the high bits
still being present so that it may initialize the union in the final
32-bit siginfo.
This patch works around this problem by having copy_siginfo_to_user
copy si->si_code intact to userspace. This introduces a bug in native
64-bit PTRACE_GETSIGINFO, but I haven't noticed anything being
bothered by it.
diff --git a/kernel/signal.c b/kernel/signal.c
index 6af1210..e023d4a 100644
--- a/kernel/signal.c
+++ b/kernel/signal.c
@@ -2106,7 +2106,7 @@ int copy_siginfo_to_user(siginfo_t __user *to, siginfo_t *from)
*/
err = __put_user(from->si_signo, &to->si_signo);
err |= __put_user(from->si_errno, &to->si_errno);
- err |= __put_user((short)from->si_code, &to->si_code);
+ err |= __put_user(from->si_code, &to->si_code);
switch (from->si_code & __SI_MASK) {
case __SI_KILL:
err |= __put_user(from->si_pid, &to->si_pid);
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel
reply other threads:[~2008-05-15 20:11 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=20080515201116.GA12339@c2.user-mode-linux.org \
--to=jdike@addtoit.com \
--cc=user-mode-linux-devel@lists.sourceforge.net \
--cc=user-mode-linux-user@lists.sourceforge.net \
/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