164265a050
- 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
124 lines
5.4 KiB
Diff
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;
|