open-vm-tools/gcc_size_t.patch
Kirk Allan 164265a050 Accepting request 965451 from home:kallan:branches:Virtualization:VMware
- Update to 12.0.0 (build 19345655) (boo#1196803)
- jsc#SLE-24097 ECO Update open-vm-tools 12.0.0
  + New/Updated features:
    - Support for managing Salt Minion through guest variables.  A new
      open-vm-tools-salt-minion rpm is added to handle this support.
        jsc#SLE-24094 Update open-vm-tools 12.0.0 SLES15SP4
        jsc#SLE-24095 Update open-vm-tools 12.0.0 SLES15SP3
        jsc#SLE-24096 Update open-vm-tools 12.0.0 SLES12SP5
    - New ComponentMgr plugin to manage (add, remove, monitor) components on
      the guest VM. 
    - Patch to fix potential Fail to Build from Source [FTBFS] (boo#1196804).
    - Build vmhgfs with either libfuse2 or libfuse3.
  + A number of Coverity and Codacy reported issues have been addressed.
  + The following issues and pull requests reported on
    github.com/vmware/open-vm-tools have been addressed: Issue # 128,
    Issue # 314, Pull # 513, Pull # 544, Pull # 573
    
- Added patches
  + gcc_size_t.patch (boo#1196804)

OBS-URL: https://build.opensuse.org/request/show/965451
OBS-URL: https://build.opensuse.org/package/show/Virtualization:VMware/open-vm-tools?expand=0&rev=417
2022-03-28 17:28:45 +00:00

124 lines
5.4 KiB
Diff

commit de6d129476724668b8903e2a87654f50ba21b1b2
Author: John Wolfe <jwolfe@vmware.com>
Date: Thu Feb 17 14:51:25 2022 -0800
asyncsocket.c: Use size_t in place of int type for array size and indexing.
Glibc 2.35 with GCC 11 and 12 produces additional warnings about strings
and array bounds. Switching from "int" to "size_t" type for variable
used for the array size and element indexing.
GCC warned when an integer value is passed as the size of the
struct pollfd array to poll().
Fixes https://github.com/vmware/open-vm-tools/issues/570
diff --git a/open-vm-tools/lib/asyncsocket/asyncSocketVTable.h b/open-vm-tools/lib/asyncsocket/asyncSocketVTable.h
index a69b6567..c068ff50 100644
--- a/open-vm-tools/lib/asyncsocket/asyncSocketVTable.h
+++ b/open-vm-tools/lib/asyncsocket/asyncSocketVTable.h
@@ -1,5 +1,5 @@
/*********************************************************
- * Copyright (C) 2011,2014-2017,2019-2021 VMware, Inc. All rights reserved.
+ * Copyright (C) 2011,2014-2017,2019-2022 VMware, Inc. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published
@@ -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 ecb5a933..2bf97b54 100644
--- a/open-vm-tools/lib/asyncsocket/asyncsocket.c
+++ b/open-vm-tools/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,
@@ -2807,7 +2807,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:
@@ -2827,11 +2827,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)) {
@@ -2852,7 +2852,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);
@@ -2878,7 +2878,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,
@@ -3032,7 +3032,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) {
@@ -3078,11 +3078,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
@@ -3096,7 +3096,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;