From: Oliver Kurth Date: Sun, 21 Jul 2019 00:15:19 +0000 (-0700) Subject: Fix return value in AsyncTCPSocketDoOneMsg X-Git-Tag: stable-11.1.0~317 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6b9de7147e7f89ccc9fd7297c4ba38e256f4a044;p=thirdparty%2Fopen-vm-tools.git Fix return value in AsyncTCPSocketDoOneMsg Trivial fix to a bug in AsyncTCPSocketDoOneMsg where ASOCKERR_SUCCESS is returned inadvertently instead of ASOCKERR_TIMEOUT when there is a timeout. --- diff --git a/open-vm-tools/lib/asyncsocket/asyncsocket.c b/open-vm-tools/lib/asyncsocket/asyncsocket.c index de83fcc57..bc75203c4 100644 --- a/open-vm-tools/lib/asyncsocket/asyncsocket.c +++ b/open-vm-tools/lib/asyncsocket/asyncsocket.c @@ -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);