]> git.ipfire.org Git - thirdparty/open-vm-tools.git/commitdiff
Fix return value in AsyncTCPSocketDoOneMsg
authorOliver Kurth <okurth@vmware.com>
Sun, 21 Jul 2019 00:15:19 +0000 (17:15 -0700)
committerOliver Kurth <okurth@vmware.com>
Sun, 21 Jul 2019 00:15:19 +0000 (17:15 -0700)
Trivial fix to a bug in AsyncTCPSocketDoOneMsg where ASOCKERR_SUCCESS is
returned inadvertently instead of ASOCKERR_TIMEOUT when there is a timeout.

open-vm-tools/lib/asyncsocket/asyncsocket.c

index de83fcc579009042edaf934de6e288f555182a53..bc75203c4db6c56e7558dcb51a0916ea82987d09 100644 (file)
@@ -4122,12 +4122,13 @@ AsyncTCPSocketDoOneMsg(AsyncSocket *base, // IN
           */
          s->recvCb = FALSE;  /* For re-registering the poll callback. */
          if (retVal == ASOCKERR_SUCCESS || retVal == ASOCKERR_TIMEOUT) {
-            retVal = AsyncTCPSocketRegisterRecvCb(s);
+            int ret = AsyncTCPSocketRegisterRecvCb(s);
             Log("SOCKET reregister recvCb after DoOneMsg (ref %d)\n",
                 BaseSocket(s)->refCount);
-         }
-         if (retVal != ASOCKERR_SUCCESS) {
-            s->base.recvBuf = NULL;
+            if (ret != ASOCKERR_SUCCESS) {
+               s->base.recvBuf = NULL;
+               retVal = ret;
+            }
          }
       }
       AsyncTCPSocketRelease(s);