Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

futex: fix futex_wait_setup key handling

If the get_futex_key() call were to fail, the existing code would
try and put_futex_key() prior to returning. This patch makes sure
we only put_futex_key() if get_futex_key() succeeded.

Reported-by: Clark Williams <williams@redhat.com>
Signed-off-by: Darren Hart <dvhltc@us.ibm.com>
LKML-Reference: <20090410165005.14342.16973.stgit@Aeon>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

authored by

Darren Hart and committed by
Thomas Gleixner
a5a2a0c7 d2de6888

+1 -1
+1 -1
kernel/futex.c
··· 1668 1668 q->key = FUTEX_KEY_INIT; 1669 1669 ret = get_futex_key(uaddr, fshared, &q->key); 1670 1670 if (unlikely(ret != 0)) 1671 - goto out; 1671 + return ret; 1672 1672 1673 1673 retry_private: 1674 1674 *hb = queue_lock(q);