summaryrefslogtreecommitdiff
path: root/locks/unix
diff options
context:
space:
mode:
authorJeff Trawick <trawick@apache.org>2014-04-13 18:05:37 +0000
committerJeff Trawick <trawick@apache.org>2014-04-13 18:05:37 +0000
commitbecb88f4df64c42dc73b5e624df916b43a91f37f (patch)
tree1fa598fd6e8c1d001eabf6a1e8932e9060bb379b /locks/unix
parent4b8b4ae015b3b60974778004b18182125c8566b8 (diff)
downloadapr-becb88f4df64c42dc73b5e624df916b43a91f37f.tar.gz
apr_os_proc_mutex_get() on Unix: Avoid segfault for cross-
process pthread mutexes. Submitted by: Yann Ylavic <ylavic.dev gmail.com> Reviewed by: trawick git-svn-id: https://svn.apache.org/repos/asf/apr/apr/trunk@1587063 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'locks/unix')
-rw-r--r--locks/unix/proc_mutex.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/locks/unix/proc_mutex.c b/locks/unix/proc_mutex.c
index 728506583..f229b19b1 100644
--- a/locks/unix/proc_mutex.c
+++ b/locks/unix/proc_mutex.c
@@ -1013,7 +1013,12 @@ APR_DECLARE(apr_status_t) apr_os_proc_mutex_get(apr_os_proc_mutex_t *ospmutex,
apr_proc_mutex_t *pmutex)
{
#if APR_HAS_SYSVSEM_SERIALIZE || APR_HAS_FCNTL_SERIALIZE || APR_HAS_FLOCK_SERIALIZE || APR_HAS_POSIXSEM_SERIALIZE
- ospmutex->crossproc = pmutex->interproc->filedes;
+ if (pmutex->interproc) {
+ ospmutex->crossproc = pmutex->interproc->filedes;
+ }
+ else {
+ ospmutex->crossproc = -1;
+ }
#endif
#if APR_HAS_PROC_PTHREAD_SERIALIZE
ospmutex->pthread_interproc = pmutex->pthread_interproc;