hrev52993 adds 1 changeset to branch 'master'
old head: 88255e0890e158a954555bfbe4b1cc91d7261e48
new head: b3225546301bd411c50c43105b144690e84c1bd5
overview:
https://git.haiku-os.org/haiku/log/?qt=range&q=b3225546301b+%5E88255e0890e1
----------------------------------------------------------------------------
b3225546301b: kernel: Check for uninitialized locks in mutex_trylock().
We already do this in mutex_lock() and variants.
[ Augustin Cavalier <waddlesplash@xxxxxxxxx> ]
----------------------------------------------------------------------------
Revision: hrev52993
Commit: b3225546301bd411c50c43105b144690e84c1bd5
URL: https://git.haiku-os.org/haiku/commit/?id=b3225546301b
Author: Augustin Cavalier <waddlesplash@xxxxxxxxx>
Date: Fri Mar 15 14:59:48 2019 UTC
----------------------------------------------------------------------------
1 file changed, 4 insertions(+), 3 deletions(-)
src/system/kernel/locks/lock.cpp | 7 ++++---
----------------------------------------------------------------------------
diff --git a/src/system/kernel/locks/lock.cpp b/src/system/kernel/locks/lock.cpp
index 33a1d7e632..50e718edd2 100644
--- a/src/system/kernel/locks/lock.cpp
+++ b/src/system/kernel/locks/lock.cpp
@@ -795,10 +795,11 @@ _mutex_trylock(mutex* lock)
#if KDEBUG
InterruptsSpinLocker _(lock->lock);
- if (lock->holder <= 0) {
+ if (lock->holder < 0) {
lock->holder = thread_get_current_thread_id();
return B_OK;
- }
+ } else if (lock->holder == 0)
+ panic("_mutex_trylock(): using uninitialized lock %p", lock);
return B_WOULD_BLOCK;
#else
return mutex_trylock(lock);
@@ -828,7 +829,7 @@ _mutex_lock_with_timeout(mutex* lock, uint32 timeoutFlags,
bigtime_t timeout)
panic("_mutex_lock(): double lock of %p by thread %" B_PRId32,
lock,
lock->holder);
} else if (lock->holder == 0)
- panic("_mutex_lock(): using unitialized lock %p", lock);
+ panic("_mutex_lock(): using uninitialized lock %p", lock);
#else
if ((lock->flags & MUTEX_FLAG_RELEASED) != 0) {
lock->flags &= ~MUTEX_FLAG_RELEASED;