From: Jason Wessel <jason.wessel@windriver.com>
To: torvalds@linux-foundation.org
Cc: linux-kernel@vger.kernel.org,
kgdb-bugreport@lists.sourceforge.net,
Jason Wessel <jason.wessel@windriver.com>
Subject: [PATCH 2/9] kgdb: Read buffer overflow
Date: Fri, 11 Dec 2009 09:36:10 -0600 [thread overview]
Message-ID: <1260545777-8089-3-git-send-email-jason.wessel@windriver.com> (raw)
In-Reply-To: <1260545777-8089-2-git-send-email-jason.wessel@windriver.com>
Roel Kluin reported an error found with Parfait. Where we want to
ensure that that kgdb_info[-1] never gets accessed.
Also check to ensure any negative tid does not exceed the size of the
shadow CPU array, else report critical debug context because it is an
internal kgdb failure.
Reported-by: Roel Kluin <roel.kluin@gmail.com>
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
---
kernel/kgdb.c | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/kernel/kgdb.c b/kernel/kgdb.c
index 7d70146..29357a9 100644
--- a/kernel/kgdb.c
+++ b/kernel/kgdb.c
@@ -541,12 +541,17 @@ static struct task_struct *getthread(struct pt_regs *regs, int tid)
*/
if (tid == 0 || tid == -1)
tid = -atomic_read(&kgdb_active) - 2;
- if (tid < 0) {
+ if (tid < -1 && tid > -NR_CPUS - 2) {
if (kgdb_info[-tid - 2].task)
return kgdb_info[-tid - 2].task;
else
return idle_task(-tid - 2);
}
+ if (tid <= 0) {
+ printk(KERN_ERR "KGDB: Internal thread select error\n");
+ dump_stack();
+ return NULL;
+ }
/*
* find_task_by_pid_ns() does not take the tasklist lock anymore
--
1.6.4.rc1
next prev parent reply other threads:[~2009-12-11 15:38 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-12-11 15:36 [GIT PULL] kgdb 2.6.33 Jason Wessel
2009-12-11 15:36 ` [PATCH 1/9] kgdb,x86: remove redundant test Jason Wessel
2009-12-11 15:36 ` Jason Wessel [this message]
2009-12-11 15:36 ` [PATCH 3/9] kgdbts: Read buffer overflow Jason Wessel
2009-12-11 15:36 ` [PATCH 4/9] kgdb: Replace strstr() by strchr() for single-character needles Jason Wessel
2009-12-11 15:36 ` [PATCH 5/9] kgdb,i386: Fix corner case access to ss with NMI watch dog exception Jason Wessel
2009-12-11 15:36 ` [PATCH 6/9] kgdb: allow for cpu switch when single stepping Jason Wessel
2009-12-11 15:36 ` [PATCH 7/9] kgdb,x86: do not set kgdb_single_step on x86 Jason Wessel
2009-12-11 15:36 ` [PATCH 8/9] kgdb: continue and warn on signal passing from gdb Jason Wessel
2009-12-11 15:36 ` [PATCH 9/9] kgdb: Always process the whole breakpoint list on activate or deactivate Jason Wessel
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=1260545777-8089-3-git-send-email-jason.wessel@windriver.com \
--to=jason.wessel@windriver.com \
--cc=kgdb-bugreport@lists.sourceforge.net \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@linux-foundation.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
all inboxes | Powered by JetHome®