#6 Refactored asyncsocket.c patch to use size_t size and index variables.
Merged 2 years ago by ravindrakumar. Opened 2 years ago by jwolfe.

file removed
-22
@@ -1,22 +0,0 @@

- diff --git a/open-vm-tools/lib/asyncsocket/asyncsocket.c b/open-vm-tools/lib/asyncsocket/asyncsocket.c

- index 05147d2..05cb066 100644

- --- a/lib/asyncsocket/asyncsocket.c

- +++ b/lib/asyncsocket/asyncsocket.c

- @@ -2810,7 +2810,7 @@ AsyncTCPSocketPeek(AsyncSocket *base,   // IN:

-  

-  static int

-  AsyncTCPSocketPollWork(AsyncTCPSocket **asock,     // IN:

- -                       int numSock,                // IN:

- +                       size_t numSock,             // IN:

-                         void *p,                    // IN:

-                         Bool read,                  // IN:

-                         int timeoutMS,              // IN:

- @@ -2830,7 +2830,7 @@ AsyncTCPSocketPollWork(AsyncTCPSocket **asock,     // IN:

-     struct fd_set rwfds;

-     struct fd_set exceptfds;

-  #endif

- -   int i;

- +   size_t i;

-     int retval;

-  

-     ASSERT(outAsock != NULL && *outAsock == NULL && asock != NULL &&

file added
+101
@@ -0,0 +1,101 @@

+ diff --git a/open-vm-tools/lib/asyncsocket/asyncSocketVTable.h b/open-vm-tools/lib/asyncsocket/asyncSocketVTable.h

+ index a69b6567..01d5be9d 100644

+ --- a/lib/asyncsocket/asyncSocketVTable.h

+ +++ b/lib/asyncsocket/asyncSocketVTable.h

+ @@ -131,8 +131,8 @@ typedef struct AsyncSocketVTable {

+                         int timeoutMS);

+     int (*doOneMsg)(AsyncSocket *s, Bool read, int timeoutMS);

+     int (*waitForConnection)(AsyncSocket *s, int timeoutMS);

+ -   int (*waitForReadMultiple)(AsyncSocket **asock, int numSock, int timeoutMS,

+ -                              int *outIdx);

+ +   int (*waitForReadMultiple)(AsyncSocket **asock, size_t numSock,

+ +                              int timeoutMS, int *outIdx);

+     int (*peek)(AsyncSocket *asock, void *buf, int len, void *cb, void *cbData);

+  

+     /*

+ diff --git a/open-vm-tools/lib/asyncsocket/asyncsocket.c b/open-vm-tools/lib/asyncsocket/asyncsocket.c

+ index 05147d2e..b827f66b 100644

+ --- a/lib/asyncsocket/asyncsocket.c

+ +++ b/lib/asyncsocket/asyncsocket.c

+ @@ -370,7 +370,7 @@ static int AsyncTCPSocketRecvPartialBlocking(AsyncSocket *s, void *buf, int len,

+  static int AsyncTCPSocketSendBlocking(AsyncSocket *s, void *buf, int len,

+                                        int *sent, int timeoutMS);

+  static int AsyncTCPSocketDoOneMsg(AsyncSocket *s, Bool read, int timeoutMS);

+ -static int AsyncTCPSocketWaitForReadMultiple(AsyncSocket **asock, int numSock,

+ +static int AsyncTCPSocketWaitForReadMultiple(AsyncSocket **asock, size_t numSock,

+                                               int timeoutMS, int *outIdx);

+  static int AsyncTCPSocketSetOption(AsyncSocket *asyncSocket,

+                                     AsyncSocketOpts_Layer layer,

+ @@ -2810,7 +2810,7 @@ AsyncTCPSocketPeek(AsyncSocket *base,   // IN:

+  

+  static int

+  AsyncTCPSocketPollWork(AsyncTCPSocket **asock,     // IN:

+ -                       int numSock,                // IN:

+ +                       size_t numSock,             // IN:

+                         void *p,                    // IN:

+                         Bool read,                  // IN:

+                         int timeoutMS,              // IN:

+ @@ -2830,11 +2830,11 @@ AsyncTCPSocketPollWork(AsyncTCPSocket **asock,     // IN:

+     struct fd_set rwfds;

+     struct fd_set exceptfds;

+  #endif

+ -   int i;

+ +   size_t i;

+     int retval;

+  

+     ASSERT(outAsock != NULL && *outAsock == NULL && asock != NULL &&

+ -          numSock > 0);

+ +          numSock != 0);

+  

+     for (i = 0; i < numSock; i++) {

+        if (read && SSL_Pending(asock[i]->sslSock)) {

+ @@ -2855,7 +2855,7 @@ AsyncTCPSocketPollWork(AsyncTCPSocket **asock,     // IN:

+           retval = poll(pfd, numSock, timeoutMS);

+           AsyncTCPSocketLock(parentSock);

+        } else {

+ -         for (i = numSock - 1; i >= 0; i--) {

+ +         for (i = numSock; i-- > 0; ) {

+              AsyncTCPSocketUnlock(asock[i]);

+           }

+           retval = poll(pfd, numSock, timeoutMS);

+ @@ -2881,7 +2881,7 @@ AsyncTCPSocketPollWork(AsyncTCPSocket **asock,     // IN:

+                           &exceptfds, timeoutMS >= 0 ? &tv : NULL);

+           AsyncTCPSocketLock(parentSock);

+        } else {

+ -         for (i = numSock - 1; i >= 0; i--) {

+ +         for (i = numSock; i-- > 0; ) {

+              AsyncTCPSocketUnlock(asock[i]);

+           }

+           retval = select(1, read ? &rwfds : NULL, read ? NULL : &rwfds,

+ @@ -3035,7 +3035,7 @@ AsyncTCPSocketPoll(AsyncTCPSocket *s,          // IN:

+  #else

+     void *p = NULL;

+  #endif

+ -   int numSock = 0;

+ +   size_t numSock = 0;

+  

+     if (read && s->fd == -1) {

+        if (!s->listenAsock4 && !s->listenAsock6) {

+ @@ -3081,11 +3081,11 @@ AsyncTCPSocketPoll(AsyncTCPSocket *s,          // IN:

+  

+  static int

+  AsyncTCPSocketWaitForReadMultiple(AsyncSocket **asock,   // IN:

+ -                                  int numSock,           // IN:

+ +                                  size_t numSock,        // IN:

+                                    int timeoutMS,         // IN:

+                                    int *outIdx)           // OUT:

+  {

+ -   int i;

+ +   size_t i;

+     int err;

+     AsyncTCPSocket *outAsock  = NULL;

+  #ifndef _WIN32

+ @@ -3099,7 +3099,7 @@ AsyncTCPSocketWaitForReadMultiple(AsyncSocket **asock,   // IN:

+     }

+     err = AsyncTCPSocketPollWork((AsyncTCPSocket **)asock, numSock, p, TRUE,

+                                  timeoutMS, NULL, &outAsock);

+ -   for (i = numSock - 1; i >= 0; i--) {

+ +   for (i = numSock; i-- > 0; ) {

+        AsyncTCPSocket *tcpAsock = TCPSocket(asock[i]);

+        if (outAsock == tcpAsock) {

+           *outIdx = i;

file modified
+8 -2
@@ -32,7 +32,7 @@

  

  Name:             open-vm-tools

  Version:          %{toolsversion}

- Release:          5%{?dist}

+ Release:          6%{?dist}

  Summary:          Open Virtual Machine Tools for virtual machines hosted on VMware

  License:          GPLv2

  URL:              https://github.com/vmware/%{name}
@@ -52,7 +52,7 @@

  %endif

  

  # Patches

- Patch1:           asyncsocket.c.patch

+ Patch1:           asyncsocket.patch

  #Patch2:           <patch-name2>.patch

  

  BuildRequires:    autoconf
@@ -392,6 +392,12 @@

  %{_bindir}/vmware-vgauth-smoketest

  

  %changelog

+ * Wed Feb 9 2022 John Wolfe <jwolfe@vmware.com> - 11.3.0-6

+ - Refactored asyncsocket.c patch to use size_t size and index variables.

+ 

+ * Tue Feb 1 2022 John Wolfe <jwolfe@vmware.com> - 11.3.0-5

+ - Address (fix) strings or array bounds warnings from GCC 12.0.x.

+ 

  * Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 11.3.0-4

  - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild

  

  • Replaced asyncsocket.c.patch with asyncsocket.

Pull-Request has been merged by ravindrakumar

2 years ago

Yes this patch looks good. Noted it's been merged already.