]> granicus.if.org Git - libtirpc/commitdiff
The clnt_fd_lock mutex lock was not being
authorSteve Dickson <steved@redhat.com>
Thu, 20 Nov 2008 13:53:52 +0000 (08:53 -0500)
committerSteve Dickson <steved@redhat.com>
Thu, 20 Nov 2008 13:53:52 +0000 (08:53 -0500)
released during an error path in clnt_dg_call.

Signed-off-by: Steve Dickson <steved@redhat.com>
src/clnt_dg.c

index da01c5bda54d7e7fff4967971083af147f7f4376..9a574ebd427325aee916ebb66cdf03b3268400e9 100644 (file)
@@ -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);
                }
        }