summaryrefslogtreecommitdiff
path: root/source3/smbd/process.c
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2018-04-10 21:27:47 +0200
committerJeremy Allison <jra@samba.org>2018-04-11 19:07:24 +0200
commitd40891a14683a9cc8951ad36fb9e09831b7122af (patch)
treee6c4de3e2595128b6a8c2e85bcff2c83b583ee72 /source3/smbd/process.c
parente7522a4ff8124b8d7bfad9c805dd140475d418e2 (diff)
downloadsamba-d40891a14683a9cc8951ad36fb9e09831b7122af.tar.gz
smbd: Fix CID 1414783 Double unlock
The loop is unnecessary, both susv4 as well as the Linux manpage explicitly say: > These functions shall not return an error code of [EINTR]. Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
Diffstat (limited to 'source3/smbd/process.c')
-rw-r--r--source3/smbd/process.c12
1 files changed, 3 insertions, 9 deletions
diff --git a/source3/smbd/process.c b/source3/smbd/process.c
index df54a44b884..f992e65fc90 100644
--- a/source3/smbd/process.c
+++ b/source3/smbd/process.c
@@ -162,15 +162,9 @@ static bool smbd_unlock_socket_internal(struct smbXsrv_connection *xconn)
#ifdef HAVE_ROBUST_MUTEXES
if (xconn->smb1.echo_handler.socket_mutex != NULL) {
- int ret = EINTR;
-
- while (ret == EINTR) {
- ret = pthread_mutex_unlock(
- xconn->smb1.echo_handler.socket_mutex);
- if (ret == 0) {
- break;
- }
- }
+ int ret;
+ ret = pthread_mutex_unlock(
+ xconn->smb1.echo_handler.socket_mutex);
if (ret != 0) {
DEBUG(1, ("pthread_mutex_unlock failed: %s\n",
strerror(ret)));