All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] futex: check for NULL keys in match_futex
@ 2009-10-14 17:12 Darren Hart
  2009-10-14 20:11 ` [tip:core/urgent] futex: Check " tip-bot for Darren Hart
  0 siblings, 1 reply; 2+ messages in thread
From: Darren Hart @ 2009-10-14 17:12 UTC (permalink / raw)
  To: lkml, 
  Cc: Thomas Gleixner, Peter Zijlstra, Ingo Molnar, Eric Dumazet,
	Dinakar Guniguntala, John Stultz

From: Darren Hart <dvhltc@us.ibm.com>

If userspace tries to perform a requeue_pi on a non-requeue_pi waiter, it
will find the futex_q->requeue_pi_key to be NULL and OOPS.  Check for NULL
in match_futex().  This results in cleaner code than checking at each call
site.  While match_futex(NULL, NULL) returning false is a little odd, it
will OOPS as it is today.  This approach catches all possible call sites
as well.

Signed-off-by: Darren Hart <dvhltc@us.ibm.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ingo Molnar <mingo@elte.hu>
CC: Eric Dumazet <eric.dumazet@gmail.com>
CC: Dinakar Guniguntala <dino@in.ibm.com>
CC: John Stultz <johnstul@us.ibm.com>
---

 kernel/futex.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/kernel/futex.c b/kernel/futex.c
index 4949d33..5971730 100644
--- a/kernel/futex.c
+++ b/kernel/futex.c
@@ -150,7 +150,8 @@ static struct futex_hash_bucket *hash_futex(union futex_key *key)
  */
 static inline int match_futex(union futex_key *key1, union futex_key *key2)
 {
-	return (key1->both.word == key2->both.word
+	return (key1 && key2
+		&& key1->both.word == key2->both.word
 		&& key1->both.ptr == key2->both.ptr
 		&& key1->both.offset == key2->both.offset);
 }
-- 
Darren Hart
IBM Linux Technology Center
Real-Time Linux Team

^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2009-10-14 20:13 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-10-14 17:12 [PATCH] futex: check for NULL keys in match_futex Darren Hart
2009-10-14 20:11 ` [tip:core/urgent] futex: Check " tip-bot for Darren Hart

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.