From: Steve Dickson Date: Thu, 20 Nov 2008 13:53:52 +0000 (-0500) Subject: The clnt_fd_lock mutex lock was not being X-Git-Tag: 0.0.10~8 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7c78a0362fcd3e0749330f11d0fdecb62131a6a3;p=libtirpc The clnt_fd_lock mutex lock was not being released during an error path in clnt_dg_call. Signed-off-by: Steve Dickson --- diff --git a/src/clnt_dg.c b/src/clnt_dg.c index da01c5b..9a574eb 100644 --- a/src/clnt_dg.c +++ b/src/clnt_dg.c @@ -402,6 +402,7 @@ get_reply: fd.fd = cu->cu_fd; fd.events = POLLIN; + fd.revents = 0; while (total_time > 0) { tv = total_time < nextsend_time ? total_time : nextsend_time; switch (poll(&fd, 1, tv)) { @@ -455,6 +456,7 @@ get_reply: { e = (struct sock_extended_err *) CMSG_DATA(cmsg); cu->cu_error.re_errno = e->ee_errno; + release_fd_lock(cu->cu_fd, mask); return (cu->cu_error.re_status = RPC_CANTRECV); } }