summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/passwd.cc
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/passwd.cc')
-rw-r--r--winsup/cygwin/passwd.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/winsup/cygwin/passwd.cc b/winsup/cygwin/passwd.cc
index c86c07b6a..092473b12 100644
--- a/winsup/cygwin/passwd.cc
+++ b/winsup/cygwin/passwd.cc
@@ -115,6 +115,11 @@ class passwd_lock
public:
passwd_lock (): mutex ((pthread_mutex_t) PTHREAD_MUTEX_INITIALIZER) {}
void arm () {pthread_mutex_lock (&mutex); }
+ ~passwd_lock ()
+ {
+ if (mutex != (pthread_mutex_t) PTHREAD_MUTEX_INITIALIZER)
+ pthread_mutex_unlock (&mutex);
+ }
};
/* Read in /etc/passwd and save contents in the password cache.