From d9918c3d29045e32351d1deeabf701eba7ece65a Mon Sep 17 00:00:00 2001 From: James Thomas Date: Thu, 2 Mar 2017 14:07:23 +0000 Subject: [PATCH 1/2] Fix a crash in JackPosixSemaphore::Wait() Crash was observed in this function when fSemaphore was NULL, this patch copies the NULL pointer check from the commented function above into Wait() --- posix/JackPosixSemaphore.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/posix/JackPosixSemaphore.cpp b/posix/JackPosixSemaphore.cpp index 6eccbe58..bdd3c449 100644 --- a/posix/JackPosixSemaphore.cpp +++ b/posix/JackPosixSemaphore.cpp @@ -102,6 +102,11 @@ bool JackPosixSemaphore::Wait() { int res; + if (!fSemaphore) { + jack_error("JackPosixSemaphore::Wait name = %s already deallocated!!", fName); + return false; + } + while ((res = sem_wait(fSemaphore) < 0)) { jack_error("JackPosixSemaphore::Wait name = %s err = %s", fName, strerror(errno)); if (errno != EINTR) { From 05f87555dfd3706a7a1cec871104b6bd8d2c6c28 Mon Sep 17 00:00:00 2001 From: James Thomas Date: Thu, 2 Mar 2017 14:09:08 +0000 Subject: [PATCH 2/2] Remove unused JackPosixSemaphore::Wait() function This doesn't seem necessary since it is implmented below --- posix/JackPosixSemaphore.cpp | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/posix/JackPosixSemaphore.cpp b/posix/JackPosixSemaphore.cpp index bdd3c449..9e511647 100644 --- a/posix/JackPosixSemaphore.cpp +++ b/posix/JackPosixSemaphore.cpp @@ -81,23 +81,6 @@ bool JackPosixSemaphore::SignalAll() return (res == 0); } -/* -bool JackPosixSemaphore::Wait() -{ - int res; - - if (!fSemaphore) { - jack_error("JackPosixSemaphore::Wait name = %s already deallocated!!", fName); - return false; - } - - if ((res = sem_wait(fSemaphore)) != 0) { - jack_error("JackPosixSemaphore::Wait name = %s err = %s", fName, strerror(errno)); - } - return (res == 0); -} -*/ - bool JackPosixSemaphore::Wait() { int res;