Skip to content
Snippets Groups Projects
Commit 98925c0d authored by Olivier Dion's avatar Olivier Dion Committed by Sébastien Blin
Browse files

contrib/pjproject: Fix invalid owner of mutex

Change-Id: I3840037c7710a6a4874ea03af49b139e314dcd95
parent 15813ffa
No related branches found
No related tags found
No related merge requests found
From 2bf169548d9d55ca022a3203bb64c3c90ed01891 Mon Sep 17 00:00:00 2001
From: Olivier Dion <olivier.dion@savoirfairelinux.com>
Date: Thu, 19 Aug 2021 10:15:13 -0400
Subject: [PATCH] pj/ioqueue_epoll: Acquire ioqueue's lock before destroying
`ioqueue_destroy(ioqueue)` will call `pj_lock_release(ioqueue->lock)`, which will
result in failure of the assertion `mutex->owner == pj_thread_this()` when
`PJ_DEBUG` is defined.
Thus, acquire the lock before destroying the ioqueue.
---
pjlib/src/pj/ioqueue_epoll.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/pjlib/src/pj/ioqueue_epoll.c b/pjlib/src/pj/ioqueue_epoll.c
index dbf479d25..560160ab7 100644
--- a/pjlib/src/pj/ioqueue_epoll.c
+++ b/pjlib/src/pj/ioqueue_epoll.c
@@ -231,6 +231,7 @@ PJ_DEF(pj_status_t) pj_ioqueue_create( pj_pool_t *pool,
ioqueue->epfd = os_epoll_create(max_fd);
if (ioqueue->epfd < 0) {
+ pj_lock_acquire(ioqueue->lock);
ioqueue_destroy(ioqueue);
return PJ_RETURN_OS_ERROR(pj_get_native_os_error());
}
--
2.32.0
......@@ -20,6 +20,7 @@
"0014-fix-socket-leak.patch",
"0015-fix-socktype-and-duplicate-checking.patch",
"0017-auto-register-thread.patch",
"0018-fix-ioqueue-lock-acquire.patch"
"0001-win-config.patch",
"0002-win-vs-gnutls.patch",
"0003-win-vs2017-props.patch"
......
......@@ -43,6 +43,7 @@ $(TARBALLS)/pjproject-$(PJPROJECT_VERSION).tar.gz:
.sum-pjproject: pjproject-$(PJPROJECT_VERSION).tar.gz
# NOTE! Remove 0018-fix-ioqueue-lock-acquire.patch when bumping pjsip to version 2.12
pjproject: pjproject-$(PJPROJECT_VERSION).tar.gz .sum-pjproject
$(UNPACK)
$(APPLY) $(SRC)/pjproject/0001-rfc6544.patch
......@@ -61,6 +62,7 @@ pjproject: pjproject-$(PJPROJECT_VERSION).tar.gz .sum-pjproject
$(APPLY) $(SRC)/pjproject/0014-fix-socket-leak.patch
$(APPLY) $(SRC)/pjproject/0015-fix-socktype-and-duplicate-checking.patch # TODO remove with 2.12 (https://github.com/pjsip/pjproject/commits/2feee8db77ed47e7b574367295d4f03f9aea67f8)
$(APPLY) $(SRC)/pjproject/0017-auto-register-thread.patch
$(APPLY) $(SRC)/pjproject/0018-fix-ioqueue-lock-acquire.patch
ifdef HAVE_ANDROID
$(APPLY) $(SRC)/pjproject/0001-android.patch
endif
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment