diff options
author | Jeff Trawick <trawick@apache.org> | 2014-04-13 18:05:37 +0000 |
---|---|---|
committer | Jeff Trawick <trawick@apache.org> | 2014-04-13 18:05:37 +0000 |
commit | becb88f4df64c42dc73b5e624df916b43a91f37f (patch) | |
tree | 1fa598fd6e8c1d001eabf6a1e8932e9060bb379b /locks/unix | |
parent | 4b8b4ae015b3b60974778004b18182125c8566b8 (diff) | |
download | apr-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.c | 7 |
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; |