Hello community,

here is the log from the commit of package open-vm-tools for openSUSE:Factory 
checked in at 2020-09-03 01:13:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/open-vm-tools (Old)
 and      /work/SRC/openSUSE:Factory/.open-vm-tools.new.3399 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "open-vm-tools"

Thu Sep  3 01:13:27 2020 rev:95 rq:830311 version:11.1.5

Changes:
--------
--- /work/SRC/openSUSE:Factory/open-vm-tools/open-vm-tools.changes      
2020-06-23 21:02:51.225505897 +0200
+++ /work/SRC/openSUSE:Factory/.open-vm-tools.new.3399/open-vm-tools.changes    
2020-09-03 01:14:19.144474192 +0200
@@ -1,0 +2,16 @@
+Fri Aug 28 14:57:34 UTC 2020 - Kirk Allan <kal...@suse.com>
+
+- Update to 11.1.5 (build 16724464) (boo#1175573)
+  + This source release rolls up the SDMP fixes release post 11.1.0.
+  + Fix serveral Coverity reported issues.
+  + Address github issues:
+      https://github.com/vmware/open-vm-tools/issues/451
+      https://github.com/vmware/open-vm-tools/issues/429
+      https://github.com/vmware/open-vm-tools/issues/428
+- Drop unnecessary patch:
+  - gcc10-warning.patch
+  - sdmp-get-version.patch
+  - sdmp-netstat-to-ss.patch
+  - sdmp-warnings.patch
+
+-------------------------------------------------------------------

Old:
----
  gcc10-warning.patch
  open-vm-tools-11.1.0-16036546.tar.gz
  sdmp-get-version.patch
  sdmp-netstat-to-ss.patch
  sdmp-warnings.patch

New:
----
  open-vm-tools-11.1.5-16724464.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ open-vm-tools.spec ++++++
--- /var/tmp/diff_new_pack.LHp0w2/_old  2020-09-03 01:14:21.136474925 +0200
+++ /var/tmp/diff_new_pack.LHp0w2/_new  2020-09-03 01:14:21.144474928 +0200
@@ -40,8 +40,8 @@
 Name:           open-vm-tools
 %define subname open-vm-tools
 %define tarname open-vm-tools
-%define bldnum  16036546
-Version:        11.1.0
+%define bldnum  16724464
+Version:        11.1.5
 Release:        0
 Summary:        Open Virtual Machine Tools
 License:        BSD-3-Clause AND GPL-2.0-only AND LGPL-2.1-only
@@ -135,11 +135,7 @@
 Supplements:    modalias(pci:v000015ADd*sv*sd*bc*sc*i*)
 ExclusiveArch:  %ix86 x86_64
 #Upstream patches
-Patch0:         gcc10-warning.patch
-Patch1:         pam-vmtoolsd.patch
-Patch2:         sdmp-warnings.patch
-Patch3:         sdmp-get-version.patch
-Patch4:         sdmp-netstat-to-ss.patch
+Patch0:         pam-vmtoolsd.patch
 
 %if 0%{?suse_version} >= 1500
 %systemd_ordering
@@ -220,10 +216,6 @@
 sed -i -e "s/\r//" README
 #Upstream patches
 %patch0 -p2
-%patch1 -p2
-%patch2 -p2
-%patch3 -p2
-%patch4 -p2
 
 %build
 %if %{with_X}

++++++ open-vm-tools-11.1.0-16036546.tar.gz -> 
open-vm-tools-11.1.5-16724464.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/open-vm-tools-11.1.0-16036546/AUTHORS 
new/open-vm-tools-11.1.5-16724464/AUTHORS
--- old/open-vm-tools-11.1.0-16036546/AUTHORS   2020-04-15 07:05:01.000000000 
+0200
+++ new/open-vm-tools-11.1.5-16724464/AUTHORS   2020-08-10 15:51:05.000000000 
+0200
@@ -59,3 +59,5 @@
 Josh Paetzel    FreeBSD has removed some vnops flags that have never been used.
                 - https://github.com/vmware/open-vm-tools/pull/403
 
+Alexey Shabalin Add recognition of ALT Linux distributions
+                - https://github.com/vmware/open-vm-tools/pull/431
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/open-vm-tools-11.1.0-16036546/autom4te.cache/output.0 
new/open-vm-tools-11.1.5-16724464/autom4te.cache/output.0
--- old/open-vm-tools-11.1.0-16036546/autom4te.cache/output.0   2020-04-15 
07:06:28.000000000 +0200
+++ new/open-vm-tools-11.1.5-16724464/autom4te.cache/output.0   2020-08-10 
15:52:44.000000000 +0200
@@ -1,6 +1,6 @@
 @%:@! /bin/sh
 @%:@ Guess values for system-dependent variables and create Makefiles.
-@%:@ Generated by GNU Autoconf 2.69 for open-vm-tools 11.1.0.
+@%:@ Generated by GNU Autoconf 2.69 for open-vm-tools 11.1.5.
 @%:@
 @%:@ Report bugs to <open-vm-tools-de...@lists.sourceforge.net>.
 @%:@ 
@@ -729,8 +729,8 @@
 # Identity of this package.
 PACKAGE_NAME='open-vm-tools'
 PACKAGE_TARNAME='open-vm-tools'
-PACKAGE_VERSION='11.1.0'
-PACKAGE_STRING='open-vm-tools 11.1.0'
+PACKAGE_VERSION='11.1.5'
+PACKAGE_STRING='open-vm-tools 11.1.5'
 PACKAGE_BUGREPORT='open-vm-tools-de...@lists.sourceforge.net'
 PACKAGE_URL=''
 
@@ -1666,7 +1666,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures open-vm-tools 11.1.0 to adapt to many kinds of systems.
+\`configure' configures open-vm-tools 11.1.5 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1740,7 +1740,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of open-vm-tools 11.1.0:";;
+     short | recursive ) echo "Configuration of open-vm-tools 11.1.5:";;
    esac
   cat <<\_ACEOF
 
@@ -1900,7 +1900,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-open-vm-tools configure 11.1.0
+open-vm-tools configure 11.1.5
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2592,7 +2592,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by open-vm-tools $as_me 11.1.0, which was
+It was created by open-vm-tools $as_me 11.1.5, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -5822,7 +5822,7 @@
 
 # Define the identity of the package.
  PACKAGE='open-vm-tools'
- VERSION='11.1.0'
+ VERSION='11.1.5'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -26079,7 +26079,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by open-vm-tools $as_me 11.1.0, which was
+This file was extended by open-vm-tools $as_me 11.1.5, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -26136,7 +26136,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-open-vm-tools config.status 11.1.0
+open-vm-tools config.status 11.1.5
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/open-vm-tools-11.1.0-16036546/autom4te.cache/output.1 
new/open-vm-tools-11.1.5-16724464/autom4te.cache/output.1
--- old/open-vm-tools-11.1.0-16036546/autom4te.cache/output.1   2020-04-15 
07:06:29.000000000 +0200
+++ new/open-vm-tools-11.1.5-16724464/autom4te.cache/output.1   2020-08-10 
15:52:45.000000000 +0200
@@ -1,6 +1,6 @@
 @%:@! /bin/sh
 @%:@ Guess values for system-dependent variables and create Makefiles.
-@%:@ Generated by GNU Autoconf 2.69 for open-vm-tools 11.1.0.
+@%:@ Generated by GNU Autoconf 2.69 for open-vm-tools 11.1.5.
 @%:@
 @%:@ Report bugs to <open-vm-tools-de...@lists.sourceforge.net>.
 @%:@ 
@@ -729,8 +729,8 @@
 # Identity of this package.
 PACKAGE_NAME='open-vm-tools'
 PACKAGE_TARNAME='open-vm-tools'
-PACKAGE_VERSION='11.1.0'
-PACKAGE_STRING='open-vm-tools 11.1.0'
+PACKAGE_VERSION='11.1.5'
+PACKAGE_STRING='open-vm-tools 11.1.5'
 PACKAGE_BUGREPORT='open-vm-tools-de...@lists.sourceforge.net'
 PACKAGE_URL=''
 
@@ -1666,7 +1666,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures open-vm-tools 11.1.0 to adapt to many kinds of systems.
+\`configure' configures open-vm-tools 11.1.5 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1740,7 +1740,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of open-vm-tools 11.1.0:";;
+     short | recursive ) echo "Configuration of open-vm-tools 11.1.5:";;
    esac
   cat <<\_ACEOF
 
@@ -1900,7 +1900,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-open-vm-tools configure 11.1.0
+open-vm-tools configure 11.1.5
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2592,7 +2592,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by open-vm-tools $as_me 11.1.0, which was
+It was created by open-vm-tools $as_me 11.1.5, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -5822,7 +5822,7 @@
 
 # Define the identity of the package.
  PACKAGE='open-vm-tools'
- VERSION='11.1.0'
+ VERSION='11.1.5'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -26075,7 +26075,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by open-vm-tools $as_me 11.1.0, which was
+This file was extended by open-vm-tools $as_me 11.1.5, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -26132,7 +26132,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-open-vm-tools config.status 11.1.0
+open-vm-tools config.status 11.1.5
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/open-vm-tools-11.1.0-16036546/autom4te.cache/traces.1 
new/open-vm-tools-11.1.5-16724464/autom4te.cache/traces.1
--- old/open-vm-tools-11.1.0-16036546/autom4te.cache/traces.1   2020-04-15 
07:06:29.000000000 +0200
+++ new/open-vm-tools-11.1.5-16724464/autom4te.cache/traces.1   2020-08-10 
15:52:45.000000000 +0200
@@ -1,5 +1,5 @@
 m4trace:aclocal.m4:1150: -1- m4_include([m4/vmtools.m4])
-m4trace:configure.ac:39: -1- AC_INIT([open-vm-tools], [11.1.0], 
[open-vm-tools-de...@lists.sourceforge.net])
+m4trace:configure.ac:39: -1- AC_INIT([open-vm-tools], [11.1.5], 
[open-vm-tools-de...@lists.sourceforge.net])
 m4trace:configure.ac:39: -1- m4_pattern_forbid([^_?A[CHUM]_])
 m4trace:configure.ac:39: -1- m4_pattern_forbid([_AC_])
 m4trace:configure.ac:39: -1- m4_pattern_forbid([^LIBOBJS$], [do not use 
LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS'])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/open-vm-tools-11.1.0-16036546/configure 
new/open-vm-tools-11.1.5-16724464/configure
--- old/open-vm-tools-11.1.0-16036546/configure 2020-04-15 07:06:28.000000000 
+0200
+++ new/open-vm-tools-11.1.5-16724464/configure 2020-08-10 15:52:44.000000000 
+0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for open-vm-tools 11.1.0.
+# Generated by GNU Autoconf 2.69 for open-vm-tools 11.1.5.
 #
 # Report bugs to <open-vm-tools-de...@lists.sourceforge.net>.
 #
@@ -729,8 +729,8 @@
 # Identity of this package.
 PACKAGE_NAME='open-vm-tools'
 PACKAGE_TARNAME='open-vm-tools'
-PACKAGE_VERSION='11.1.0'
-PACKAGE_STRING='open-vm-tools 11.1.0'
+PACKAGE_VERSION='11.1.5'
+PACKAGE_STRING='open-vm-tools 11.1.5'
 PACKAGE_BUGREPORT='open-vm-tools-de...@lists.sourceforge.net'
 PACKAGE_URL=''
 
@@ -1666,7 +1666,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures open-vm-tools 11.1.0 to adapt to many kinds of systems.
+\`configure' configures open-vm-tools 11.1.5 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1740,7 +1740,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of open-vm-tools 11.1.0:";;
+     short | recursive ) echo "Configuration of open-vm-tools 11.1.5:";;
    esac
   cat <<\_ACEOF
 
@@ -1900,7 +1900,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-open-vm-tools configure 11.1.0
+open-vm-tools configure 11.1.5
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2592,7 +2592,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by open-vm-tools $as_me 11.1.0, which was
+It was created by open-vm-tools $as_me 11.1.5, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -5822,7 +5822,7 @@
 
 # Define the identity of the package.
  PACKAGE='open-vm-tools'
- VERSION='11.1.0'
+ VERSION='11.1.5'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -26075,7 +26075,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by open-vm-tools $as_me 11.1.0, which was
+This file was extended by open-vm-tools $as_me 11.1.5, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -26132,7 +26132,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-open-vm-tools config.status 11.1.0
+open-vm-tools config.status 11.1.5
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/open-vm-tools-11.1.0-16036546/configure.ac 
new/open-vm-tools-11.1.5-16724464/configure.ac
--- old/open-vm-tools-11.1.0-16036546/configure.ac      2020-04-15 
07:05:01.000000000 +0200
+++ new/open-vm-tools-11.1.5-16724464/configure.ac      2020-08-10 
15:51:05.000000000 +0200
@@ -35,10 +35,10 @@
 ### Initialization
 ###
 
-TOOLS_VERSION="11.1.0"
+TOOLS_VERSION="11.1.5"
 AC_INIT(
    [open-vm-tools],
-   [11.1.0],
+   [11.1.5],
    [open-vm-tools-de...@lists.sourceforge.net])
 
 # In order to make this configure script auto-detect situations where
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/open-vm-tools-11.1.0-16036546/lib/file/fileTemp.c 
new/open-vm-tools-11.1.5-16724464/lib/file/fileTemp.c
--- old/open-vm-tools-11.1.0-16036546/lib/file/fileTemp.c       2020-04-15 
07:05:44.000000000 +0200
+++ new/open-vm-tools-11.1.5-16724464/lib/file/fileTemp.c       2020-08-10 
15:51:56.000000000 +0200
@@ -1,5 +1,5 @@
 /*********************************************************
- * Copyright (C) 2011-2018 VMware, Inc. All rights reserved.
+ * Copyright (C) 2011-2020 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
@@ -69,7 +69,7 @@
 FileTempNum(Bool createTempFile,  // IN:
             uint32 *var)          // IN/OUT:
 {
-   ASSERT(var);
+   ASSERT(var != NULL);
 
    *var += (FileSimpleRandom() >> 8) & 0xFF;
    *var = (*var & ~0x1) | (createTempFile ? 1 : 0);
@@ -82,10 +82,11 @@
  *  FileMakeTempEx2Work --
  *
  *      Create a temporary file or a directory.
+ *
  *      If a temporary file is created successfully, then return an open file
  *      descriptor to that file.
  *
- *      'dir' specifies the directory in which to create the file. It
+ *      'dir' specifies the directory in which to create the object. It
  *      must not end in a slash.
  *
  *      'createTempFile', if TRUE, then a temporary file will be created. If
@@ -96,9 +97,9 @@
  *      'dir' already be safe (the code will check this).
  *
  *      'createNameFunc' specifies the user-specified callback function that
- *      will be called to construct the fileName. 'createNameFuncData' will be
+ *      will be called to construct a fileName. 'createNameFuncData' will be
  *      passed everytime 'createNameFunc' is called. 'createNameFunc'
- *      should return the proper fileName.
+ *      should return the dynamically allocated, proper fileName.
  *
  *      Check the documentation for File_MakeTempHelperFunc.
  *
@@ -106,7 +107,7 @@
  *      if a temporary file is created, then Open file descriptor or -1;
  *      if a temporary directory is created, then 0 or -1;
  *      If successful then presult points to a dynamically allocated
- *      string with the pathname of the temp file.
+ *      string with the pathname of the temp object created.
  *
  * Side effects:
  *      Creates the requested object when successful. Errno is set on error
@@ -128,9 +129,10 @@
 {
    uint32 i;
 
-   int fd = -1;
+   int fd;
    uint32 var = 0;
-   char *path = NULL;
+
+   ASSERT(presult != NULL);
 
    if ((dir == NULL) || (createNameFunc == NULL)) {
       errno = EFAULT;
@@ -138,16 +140,11 @@
       return -1;
    }
 
-   ASSERT(presult);
-
    *presult = NULL;
 
    for (i = 0; i < (MAX_INT32 / 2); i++) {
-      char *fileName;
-
-      /* construct suffixed pathname to use */
-      Posix_Free(path);
-      path = NULL;
+      char *objName;
+      char *pathName;
 
       /*
        * Files and directories are kept separate (odd and even respectfully).
@@ -159,50 +156,53 @@
 
       FileTempNum(createTempFile, &var);
 
-      fileName = (*createNameFunc)(var, createNameFuncData);
-      ASSERT(fileName);
+      objName = (*createNameFunc)(var, createNameFuncData);
+      ASSERT(objName != NULL);
 
-      /* construct base full pathname to use */
       if (createTempFile) {
-         path = File_PathJoin(dir, fileName);
-         fd = Posix_Open(path, O_CREAT | O_EXCL | O_BINARY | O_RDWR, 0600);
+         pathName = File_PathJoin(dir, objName);
+         fd = Posix_Open(pathName, O_CREAT | O_EXCL | O_BINARY | O_RDWR, 0600);
       } else {
          if (makeSubdirSafe) {
-            path = File_MakeSafeTempSubdir(dir, fileName);
-            if (path != NULL) {
-               fd = 0;
-            }
+            pathName = File_MakeSafeTempSubdir(dir, objName);
+            fd = (pathName == NULL) ? -1 : 0;
          } else {
-            path = File_PathJoin(dir, fileName);
-            fd = Posix_Mkdir(path, 0700);
+            pathName = File_PathJoin(dir, objName);
+            fd = Posix_Mkdir(pathName, 0700);
          }
       }
-      Posix_Free(fileName);
 
       if (fd != -1) {
-         *presult = path;
-         path = NULL;
+         *presult = pathName;
+
+         Posix_Free(objName);
          break;
       }
 
+      Posix_Free(pathName);
+
       if (errno != EEXIST) {
-         Log(LGPFX" Failed to create temporary %s \"%s\", errno: %d.\n",
+         Log(LGPFX" Failed to create temporary %s; dir \"%s\", "
+             "objName \"%s\", errno %d\n",
              createTempFile ? "file" : "directory",
-             path, errno);
+             dir, objName, errno);
+
+         Posix_Free(objName);
          goto exit;
       }
+
+      Posix_Free(objName);
    }
 
    if (fd == -1) {
-      Warning(LGPFX" Failed to create temporary %s \"%s\": "
+      Warning(LGPFX" Failed to create temporary %s: "
               "The name space is full.\n",
-              createTempFile ? "file" : "directory", path);
+              createTempFile ? "file" : "directory");
 
       errno = EAGAIN;
    }
 
   exit:
-   Posix_Free(path);
 
    return fd;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/open-vm-tools-11.1.0-16036546/lib/include/buildNumber.h 
new/open-vm-tools-11.1.5-16724464/lib/include/buildNumber.h
--- old/open-vm-tools-11.1.0-16036546/lib/include/buildNumber.h 2020-04-15 
07:06:14.000000000 +0200
+++ new/open-vm-tools-11.1.5-16724464/lib/include/buildNumber.h 2020-08-10 
15:52:30.000000000 +0200
@@ -1,12 +1,12 @@
 #define BUILD_NUMBER \
-       "build-16036546"
+       "build-16724464"
 #define BUILD_NUMBER_NUMERIC \
-       16036546
+       16724464
 #define BUILD_NUMBER_NUMERIC_STRING \
-       "16036546"
+       "16724464"
 #define PRODUCT_BUILD_NUMBER \
-       "product-build-19887"
+       "product-build-22735"
 #define PRODUCT_BUILD_NUMBER_NUMERIC \
-       19887
+       22735
 #define PRODUCT_BUILD_NUMBER_NUMERIC_STRING \
-       "19887"
+       "22735"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/open-vm-tools-11.1.0-16036546/lib/include/conf.h 
new/open-vm-tools-11.1.5-16724464/lib/include/conf.h
--- old/open-vm-tools-11.1.0-16036546/lib/include/conf.h        2020-04-15 
07:05:25.000000000 +0200
+++ new/open-vm-tools-11.1.5-16724464/lib/include/conf.h        2020-08-10 
15:51:36.000000000 +0200
@@ -303,6 +303,15 @@
 #define CONFNAME_DISKINFO_REPORT_UUID "diskinfo-report-uuid"
 
 /**
+ * Avoid buggy USB driver when querying disks for UUID.
+ * Turning this on can result in a major delay if the vmdk is
+ * being replicated.  See PR 2575285, 26539.
+ *
+ * @param boolean Set to true to work around buggy 3rd party driver.
+ */
+#define CONFNAME_DISKINFO_DRIVER_WORKAROUND "diskinfo-usb-workaround"
+
+/**
  * Report Linux disk device for vmdk mapping via vim.
  *
  * @param boolean Set to true to report devices to VMX.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/open-vm-tools-11.1.0-16036546/lib/include/vm_tools_version.h 
new/open-vm-tools-11.1.5-16724464/lib/include/vm_tools_version.h
--- old/open-vm-tools-11.1.0-16036546/lib/include/vm_tools_version.h    
2020-04-15 07:05:49.000000000 +0200
+++ new/open-vm-tools-11.1.5-16724464/lib/include/vm_tools_version.h    
2020-08-10 15:52:01.000000000 +0200
@@ -1,5 +1,5 @@
 /*********************************************************
- * Copyright (C) 1998-2019 VMware, Inc. All rights reserved.
+ * Copyright (C) 1998-2020 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
@@ -47,6 +47,7 @@
  *          reformating or changing macro names is being performed
  *          please run the perl script to ensure it succeeds.
  */
+/* clang-format off */
 
 
 /*
@@ -1589,15 +1590,29 @@
 #define   TOOLS_VERSION_SLEDGEHAMMER_UPDATE1_V_BASE 5
 
 #ifndef RC_INVOKED
-#define   TOOLS_VERSION_NEXT TOOLS_VERSION_TO_UINT(TOOLS_VERSION_NEXT_V)
+#define   TOOLS_VERSION_BALLPEENHAMMER_RELEASE 
TOOLS_VERSION_TO_UINT(TOOLS_VERSION_BALLPEENHAMMER_RELEASE_V)
 #endif /* RC_INVOKED */
-#define   TOOLS_VERSION_NEXT_V_MJR  11
-#define   TOOLS_VERSION_NEXT_V_MNR  1
-#define   TOOLS_VERSION_NEXT_V_BASE 0
-
-#define   TOOLS_VERSION_CURRENT        TOOLS_VERSION_NEXT
-#define   TOOLS_VERSION_CURRENT_STR    TOOLS_VERSION_TO_STR(TOOLS_VERSION_NEXT)
-#define   TOOLS_VERSION_CURRENT_CSV    TOOLS_VERSION_TO_CSV(TOOLS_VERSION_NEXT)
+#define   TOOLS_VERSION_BALLPEENHAMMER_RELEASE_V_MJR  11
+#define   TOOLS_VERSION_BALLPEENHAMMER_RELEASE_V_MNR  1
+#define   TOOLS_VERSION_BALLPEENHAMMER_RELEASE_V_BASE 0
+
+#ifndef RC_INVOKED
+#define   TOOLS_VERSION_BALLPEENHAMMER_PATCH1 
TOOLS_VERSION_TO_UINT(TOOLS_VERSION_BALLPEENHAMMER_PATCH1_V)
+#endif /* RC_INVOKED */
+#define   TOOLS_VERSION_BALLPEENHAMMER_PATCH1_V_MJR  11
+#define   TOOLS_VERSION_BALLPEENHAMMER_PATCH1_V_MNR  1
+#define   TOOLS_VERSION_BALLPEENHAMMER_PATCH1_V_BASE 1
+
+#ifndef RC_INVOKED
+#define   TOOLS_VERSION_BALLPEENHAMMER_UPDATE1 
TOOLS_VERSION_TO_UINT(TOOLS_VERSION_BALLPEENHAMMER_UPDATE1_V)
+#endif /* RC_INVOKED */
+#define   TOOLS_VERSION_BALLPEENHAMMER_UPDATE1_V_MJR  11
+#define   TOOLS_VERSION_BALLPEENHAMMER_UPDATE1_V_MNR  1
+#define   TOOLS_VERSION_BALLPEENHAMMER_UPDATE1_V_BASE 5
+
+#define   TOOLS_VERSION_CURRENT        TOOLS_VERSION_BALLPEENHAMMER_UPDATE1
+#define   TOOLS_VERSION_CURRENT_STR    
TOOLS_VERSION_TO_STR(TOOLS_VERSION_BALLPEENHAMMER_UPDATE1)
+#define   TOOLS_VERSION_CURRENT_CSV    
TOOLS_VERSION_TO_CSV(TOOLS_VERSION_BALLPEENHAMMER_UPDATE1)
 
 /*
  * The extended Tools version is the current Tools version with the
@@ -1614,6 +1629,8 @@
 #define TOOLS_VERSION_EXT_CURRENT_STR \
    TOOLS_VERSION_CURRENT_STR "." PRODUCT_BUILD_NUMBER_NUMERIC_STRING
 
+/* clang-format on */
+
 #endif /* VM_TOOLS_VERSION_H */
 
 #endif /* defined(USE_GOBUILD_TOOLS_VERSION) && 
!defined(GOBUILD_TOOLS_VERSION_USED) */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/open-vm-tools-11.1.0-16036546/lib/include/vmware/guestrpc/tclodefs.h 
new/open-vm-tools-11.1.5-16724464/lib/include/vmware/guestrpc/tclodefs.h
--- old/open-vm-tools-11.1.0-16036546/lib/include/vmware/guestrpc/tclodefs.h    
2020-04-15 07:05:36.000000000 +0200
+++ new/open-vm-tools-11.1.5-16724464/lib/include/vmware/guestrpc/tclodefs.h    
2020-08-10 15:51:44.000000000 +0200
@@ -65,6 +65,7 @@
 #define TOOLSOPTION_LINK_ROOT_HGFS_SHARE          "linkRootHgfsShare"
 #define TOOLSOPTION_ENABLE_MESSAGE_BUS_TUNNEL     "enableMessageBusTunnel"
 #define TOOLSOPTION_GUEST_LOG_LEVEL               "guestLogLevel"
+#define TOOLSOPTION_ENABLE_APPINFO                "enableAppInfo"
 
 /*
  * Auto-upgrade commands.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/open-vm-tools-11.1.0-16036546/lib/misc/hostinfoPosix.c 
new/open-vm-tools-11.1.5-16724464/lib/misc/hostinfoPosix.c
--- old/open-vm-tools-11.1.0-16036546/lib/misc/hostinfoPosix.c  2020-04-15 
07:05:44.000000000 +0200
+++ new/open-vm-tools-11.1.5-16724464/lib/misc/hostinfoPosix.c  2020-08-10 
15:51:57.000000000 +0200
@@ -1,5 +1,5 @@
 /*********************************************************
- * Copyright (C) 1998-2019 VMware, Inc. All rights reserved.
+ * Copyright (C) 1998-2020 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
@@ -184,6 +184,7 @@
 
 /* KEEP SORTED! (sort -d) */
 static const DistroInfo distroArray[] = {
+   { "ALT",                "/etc/altlinux-release"      },
    { "Annvix",             "/etc/annvix-release"        },
    { "Arch",               "/etc/arch-release"          },
    { "Arklinux",           "/etc/arklinux-release"      },
@@ -804,8 +805,23 @@
  *      Returns distro information based on .vmx format (distroShort).
  *
  * Return value:
- *      Overwrited the short name if we recognise the OS.
- *      Otherwise leave the short name as it is.
+ *      The default value of the "short name", upon entry to this routine, is
+ *      the officially supported identification for a generic Linux
+ *      (otherLinux).
+ *
+ *      If the distro is officially supported (by VMware)- it's recognized
+ *      the code of this routine - the "short name" will be overwritten with
+ *      the officially supported "short name" of the distro. Only VMware adds
+ *      distros and related codes to this routine.
+ *
+ *      An unsupported "short name" will be ignored by the rest of the
+ *      software stack.
+ *
+ *      If the short name is not one of the officially support ones, the
+ *      default value will be left in place.
+ *
+ *      The "long name" and detailed data will fully identify what Linux
+ *      is actually present.
  *
  * Side effects:
  *      None
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/open-vm-tools-11.1.0-16036546/lib/rpcChannel/bdoorChannel.c 
new/open-vm-tools-11.1.5-16724464/lib/rpcChannel/bdoorChannel.c
--- old/open-vm-tools-11.1.0-16036546/lib/rpcChannel/bdoorChannel.c     
2020-04-15 07:05:25.000000000 +0200
+++ new/open-vm-tools-11.1.5-16724464/lib/rpcChannel/bdoorChannel.c     
2020-08-10 15:51:36.000000000 +0200
@@ -54,19 +54,25 @@
 static gboolean
 BkdoorChannelStart(RpcChannel *chan)
 {
-   gboolean ret = TRUE;
+   gboolean ret;
    BackdoorChannel *bdoor = chan->_private;
 
 #if defined(NEED_RPCIN)
-   ret = chan->in == NULL || chan->inStarted;
-   if (ret) {
-      ret = RpcOut_start(bdoor->out);
-      if (!ret) {
-         if (chan->inStarted) {
-            RpcIn_stop(chan->in);
-            chan->inStarted = FALSE;
-         }
-      }
+   /*
+    * If the RpcIn channel exists, it should have been started before
+    * calling this routine.
+    */
+   ASSERT(chan->in == NULL || chan->inStarted);
+
+   ret = RpcOut_start(bdoor->out);
+   if (!ret && chan->in != NULL) {
+      /*
+       * If the output channel failed to start, stop the input channel
+       * if there is one.
+       */
+
+      RpcIn_stop(chan->in);
+      chan->inStarted = FALSE;
    }
 #else
    ret = RpcOut_start(bdoor->out);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/open-vm-tools-11.1.0-16036546/lib/rpcChannel/simpleSocket.c 
new/open-vm-tools-11.1.5-16724464/lib/rpcChannel/simpleSocket.c
--- old/open-vm-tools-11.1.0-16036546/lib/rpcChannel/simpleSocket.c     
2020-04-15 07:05:25.000000000 +0200
+++ new/open-vm-tools-11.1.5-16724464/lib/rpcChannel/simpleSocket.c     
2020-08-10 15:51:36.000000000 +0200
@@ -346,6 +346,7 @@
    ApiError apiErr;
    int vsockDev = -1;
    int family = VMCISock_GetAFValueFd(&vsockDev);
+   int retryCount = 0;
 
    if (family == -1) {
       Warning(LGPFX "Couldn't get VMCI socket family info.");
@@ -376,8 +377,6 @@
    /* We are required to use a privileged source port. */
    localPort = PRIVILEGED_PORT_MAX;
    while (localPort >= PRIVILEGED_PORT_MIN) {
-      int retryCount = 0;
-
       fd = SocketConnectVmciInternal(&addr, localPort, &apiErr, &sysErr);
       if (fd != INVALID_SOCKET) {
          goto done;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/open-vm-tools-11.1.0-16036546/lib/user/utilBacktrace.c 
new/open-vm-tools-11.1.5-16724464/lib/user/utilBacktrace.c
--- old/open-vm-tools-11.1.0-16036546/lib/user/utilBacktrace.c  2020-04-15 
07:05:45.000000000 +0200
+++ new/open-vm-tools-11.1.5-16724464/lib/user/utilBacktrace.c  2020-08-10 
15:51:58.000000000 +0200
@@ -1,5 +1,5 @@
 /*********************************************************
- * Copyright (C) 2013-2019 VMware, Inc. All rights reserved.
+ * Copyright (C) 2013-2020 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
@@ -343,7 +343,8 @@
                                i, x[0], x[1], dli.dli_sname, dli.dli_fname,
                                 dli.dli_fbase);
       } else {
-         outFunc(outFuncData, "SymBacktrace[%d] %#08x eip %#08x \n", i, x[0], 
x[1]);
+         outFunc(outFuncData, "SymBacktrace[%d] %#08x eip %#08x \n", i, x[0],
+                 x[1]);
       }
       x = (uintptr_t *) x[0];
    }
@@ -394,6 +395,7 @@
  *-----------------------------------------------------------------------------
  */
 
+
 void
 Util_BacktraceWithFunc(int bugNr,                // IN:
                        Util_OutputFunc outFunc,  // IN:
@@ -413,7 +415,7 @@
    if (bugNr == 0) {
       outFunc(outFuncData, "Backtrace:\n");
    } else {
-      outFunc(outFuncData, "Backtrace for bugNr=%d\n",bugNr);
+      outFunc(outFuncData, "Backtrace for bugNr=%d\n", bugNr);
    }
    frames = backtrace(callstack, ARRAYSIZE(callstack));
    for (i = 0; i < frames; i++) {
@@ -431,13 +433,14 @@
       }
    }
 #else
-   uintptr_t *x = (uintptr_t *) &bugNr;
-
    if (bugNr == 0) {
       outFunc(outFuncData, "Backtrace:\n");
    } else {
-      outFunc(outFuncData, "Backtrace for bugNr=%d\n",bugNr);
+      outFunc(outFuncData, "Backtrace for bugNr=%d\n", bugNr);
    }
-   UtilBacktraceFromPointerWithFunc(&x[-2], outFunc, outFuncData);
+
+   UtilBacktraceFromPointerWithFunc(__builtin_frame_address(0), outFunc,
+                                    outFuncData);
 #endif
 }
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/open-vm-tools-11.1.0-16036546/libguestlib/vmGuestLib.c 
new/open-vm-tools-11.1.5-16724464/libguestlib/vmGuestLib.c
--- old/open-vm-tools-11.1.0-16036546/libguestlib/vmGuestLib.c  2020-04-15 
07:05:25.000000000 +0200
+++ new/open-vm-tools-11.1.5-16724464/libguestlib/vmGuestLib.c  2020-08-10 
15:51:36.000000000 +0200
@@ -1,5 +1,5 @@
 /*********************************************************
- * Copyright (C) 2005-2016,2019 VMware, Inc. All rights reserved.
+ * Copyright (C) 2005-2016,2019-2020 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
@@ -40,7 +40,7 @@
 
 #define GUESTLIB_NAME "VMware Guest API"
 
-/* 
+/*
  * These are client side data structures, separate from the wire data formats
  * (VMGuestLibDataV[23]).
  */
@@ -60,7 +60,7 @@
     * Statistics.
     *
     * dataSize is the size of the buffer pointed to by 'data'.
-    * For v2 protocol: 
+    * For v2 protocol:
     *   - 'data' points to VMGuestLibDataV2 struct,
     * For v3 protocol:
     *   - 'data' points to VMGuestLibStatisticsV3 struct.
@@ -353,7 +353,7 @@
    VMGuestLibError ret = VMGUESTLIB_ERROR_INVALID_ARG;
    uint32 hostVersion = HANDLE_VERSION(handle);
 
-   /* 
+   /*
     * Starting with the highest supported protocol (major) version, negotiate
     * down to the highest host supported version. Host supports minimum version
     * 2.
@@ -395,15 +395,20 @@
          break;
       }
 
-      /* 
-       * Host is older and doesn't support the requested protocol version.
-       * Request the highest version the host supports.
-       */
       Debug("Failed to retrieve info: %s\n", reply ? reply : "NULL");
 
-      if (hostVersion == 2 ||
+      /*
+       * See why the request failed and either attempt a recovery action or
+       * set an appropriate error code.  If the problem is that the host
+       * is older and doesn't support the requested protocol version, then
+       * try to determine the highest version the host supports and use that.
+       */
+      if (reply == NULL) {
+         ret = VMGUESTLIB_ERROR_OTHER;
+         break;
+      } else if (hostVersion == 2 ||
           Str_Strncmp(reply, "Unknown command", sizeof "Unknown command") == 
0) {
-         /* 
+         /*
           * Host does not support this feature. Older (v2) host would return
           * "Unsupported version" if it doesn't recognize the requested 
version.
           *
@@ -414,18 +419,18 @@
          break;
       } else if (hostVersion == 3) {
          /*
-          * Host supports v2 at a minimum. If request for v3 fails, then just 
use
-          * v2, since v2 host does not send the highest supported version in 
the
-          * reply.
+          * Host supports v2 at a minimum. If request for v3 fails, then just
+          * use v2, since v2 host does not send the highest supported version
+          * in the reply.
           */
          hostVersion = 2;
          HANDLE_SESSIONID(handle) = 0;
          continue;
       } else if (!StrUtil_GetNextUintToken(&hostVersion, &index, reply, ":")) {
          /*
-          * v3 and onwards, the host returns the highest major version it 
supports,
-          * if the requested version is not supported. So parse out the host
-          * version from the reply and return error if it didn't.
+          * v3 and onwards, the host returns the highest major version it
+          * supports, if the requested version is not supported. So parse
+          * out the host version from the reply and return error if it didn't.
           */
          Debug("Bad reply received from host.\n");
          ret = VMGUESTLIB_ERROR_OTHER;
@@ -499,7 +504,7 @@
       HANDLE_VERSION(handle) = v3reply->hdr.version;
       HANDLE_SESSIONID(handle) = v3reply->hdr.sessionId;
 
-      /* 
+      /*
        * 1. Retrieve the length of the statistics array from the XDR encoded
        * part of the reply.
        */
@@ -510,7 +515,7 @@
          goto done;
       }
       if (count >= GUESTLIB_MAX_STATISTIC_ID) {
-         /* 
+         /*
           * Host has more than we can process. So process only what this side
           * can.
           */
@@ -544,7 +549,7 @@
       if (count >= v3stats->numStats) {
          ret = VMGUESTLIB_ERROR_SUCCESS;
       } else {
-         /* 
+         /*
           * Error while unmarshalling. Deep-free already unmarshalled
           * statistics and invalidate the data in the handle.
           */
@@ -670,7 +675,7 @@
    VMGuestLibStatisticsV3 *stats = HANDLE_DATA(handle);
    uint32 statIdx = statId - 1;
 
-   /* 
+   /*
     * Check that the requested statistic is supported by the host. V3 host 
sends
     * all the available statistics, in order. So any statistics that were added
     * to this version of guestlib, but unsupported by the host, would not be
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/open-vm-tools-11.1.0-16036546/libvmtools/vmtoolsLog.c 
new/open-vm-tools-11.1.5-16724464/libvmtools/vmtoolsLog.c
--- old/open-vm-tools-11.1.0-16036546/libvmtools/vmtoolsLog.c   2020-04-15 
07:05:00.000000000 +0200
+++ new/open-vm-tools-11.1.5-16724464/libvmtools/vmtoolsLog.c   2020-08-10 
15:51:04.000000000 +0200
@@ -1512,8 +1512,17 @@
    /* If needed, restore the old configuration. */
    if (!reset) {
       if (oldDomains != NULL) {
+         guint i;
+         for (i = 0; i < oldDomains->len; i++) {
+            LogHandler *old = g_ptr_array_index(oldDomains, i);
+            CLEAR_LOG_HANDLER(old);
+         }
          g_ptr_array_free(oldDomains, TRUE);
       }
+      if (oldDefault != NULL && oldDefault != gDefaultData) {
+         CLEAR_LOG_HANDLER(oldDefault);
+         oldDefault = NULL;
+      }
    }
 
    /*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/open-vm-tools-11.1.0-16036546/services/plugins/appInfo/appInfo.c 
new/open-vm-tools-11.1.5-16724464/services/plugins/appInfo/appInfo.c
--- old/open-vm-tools-11.1.0-16036546/services/plugins/appInfo/appInfo.c        
2020-04-15 07:05:25.000000000 +0200
+++ new/open-vm-tools-11.1.5-16724464/services/plugins/appInfo/appInfo.c        
2020-08-10 15:51:36.000000000 +0200
@@ -38,6 +38,7 @@
 #include "util.h"
 #include "vm_atomic.h"
 #include "vmcheck.h"
+#include "vmware/guestrpc/tclodefs.h"
 #include "vmware/tools/log.h"
 #include "vmware/tools/threadPool.h"
 #include "vmware/tools/utils.h"
@@ -89,11 +90,16 @@
 static guint gAppInfoPollInterval = 0;
 
 /**
+ * Defines the state of the App Info at the host side.
+ */
+static gboolean gAppInfoEnabledInHost = TRUE;
+
+/**
  * AppInfo gather loop timeout source.
  */
 static GSource *gAppInfoTimeoutSource = NULL;
 
-static void TweakGatherLoop(ToolsAppCtx *ctx);
+static void TweakGatherLoop(ToolsAppCtx *ctx, gboolean force);
 
 
 /*
@@ -415,7 +421,7 @@
                 "information\n", __FUNCTION__);
    }
 
-   TweakGatherLoop(ctx);
+   TweakGatherLoop(ctx, TRUE);
 
    return G_SOURCE_REMOVE;
 }
@@ -483,12 +489,16 @@
  * AppInfo Gather loop timeout source.
  *
  * @param[in]     ctx           The application context.
+ * @param[in]     force         If set to TRUE, the poll loop will be
+ *                              tweaked even if the poll interval hasn't
+ *                              changed from the previous value.
  *
  *****************************************************************************
  */
 
 static void
-TweakGatherLoop(ToolsAppCtx *ctx)    // IN
+TweakGatherLoop(ToolsAppCtx *ctx,  // IN
+                gboolean force)    // IN
 {
    gboolean disabled =
       VMTools_ConfigGetBoolean(ctx->config,
@@ -496,9 +506,9 @@
                                CONFNAME_APPINFO_DISABLED,
                                APP_INFO_CONF_DEFAULT_DISABLED_VALUE);
 
-   gint pollInterval = 0;
+   gint pollInterval;
 
-   if (!disabled) {
+   if (gAppInfoEnabledInHost && !disabled) {
       pollInterval = VMTools_ConfigGetInteger(ctx->config,
                                               CONFGROUPNAME_APPINFO,
                                               CONFNAME_APPINFO_POLLINTERVAL,
@@ -509,13 +519,17 @@
                    __FUNCTION__, pollInterval, APP_INFO_POLL_INTERVAL);
          pollInterval = APP_INFO_POLL_INTERVAL;
       }
+   } else {
+      pollInterval = 0;
    }
 
-   /*
-    * pollInterval can never be a negative value. Typecasting into
-    * guint should not be a problem.
-    */
-   TweakGatherLoopEx(ctx, (guint) pollInterval);
+   if (force || (gAppInfoPollInterval != pollInterval)) {
+      /*
+       * pollInterval can never be a negative value. Typecasting into
+       * guint should not be a problem.
+       */
+      TweakGatherLoopEx(ctx, (guint) pollInterval);
+   }
 }
 
 
@@ -539,7 +553,7 @@
 {
    g_info("%s: Reloading the tools configuration.\n", __FUNCTION__);
 
-   TweakGatherLoop(ctx);
+   TweakGatherLoop(ctx, FALSE);
 }
 
 
@@ -571,6 +585,58 @@
 
 
 /*
+ *----------------------------------------------------------------------------
+ *
+ * AppInfoServerSetOption --
+ *
+ * Handle TOOLSOPTION_ENABLE_APPINFO Set_Option callback.
+ *
+ * @param[in]  src      The source object.
+ * @param[in]  ctx      The app context.
+ * @param[in]  option   Option being set.
+ * @param[in]  value    Option value.
+ * @param[in]  plugin   Plugin registration data.
+ *
+ * @return  TRUE  if the specified option is TOOLSOPTION_ENABLE_APPINFO and
+ *                the AppInfo Gather poll loop is reconfigured.
+ *          FALSE if the specified option is not TOOLSOPTION_ENABLE_APPINFO
+ *                or AppInfo Gather poll loop is not reconfigured.
+ *----------------------------------------------------------------------------
+ */
+
+static gboolean
+AppInfoServerSetOption(gpointer src,         // IN
+                       ToolsAppCtx *ctx,     // IN
+                       const gchar *option,  // IN
+                       const gchar *value,   // IN
+                       gpointer data)        // IN
+{
+   gboolean retVal = FALSE;
+
+   if (strcmp(option, TOOLSOPTION_ENABLE_APPINFO) == 0) {
+      g_debug("%s: Tools set option %s=%s.\n",
+              __FUNCTION__, TOOLSOPTION_ENABLE_APPINFO, value);
+
+      if (strcmp(value, "1") == 0 && !gAppInfoEnabledInHost) {
+         gAppInfoEnabledInHost = TRUE;
+         retVal = TRUE;
+      } else if (strcmp(value, "0") == 0 && gAppInfoEnabledInHost) {
+         gAppInfoEnabledInHost = FALSE;
+         retVal = TRUE;
+      }
+
+      if (retVal) {
+         g_info("%s: State of AppInfo is changed to '%s' at host side.\n",
+                __FUNCTION__, gAppInfoEnabledInHost ? "enabled" : "disabled");
+         TweakGatherLoop(ctx, TRUE);
+      }
+   }
+
+   return retVal;
+}
+
+
+/*
  ******************************************************************************
  * AppInfoServerReset --
  *
@@ -625,7 +691,18 @@
 
       TweakGatherLoopEx(ctx, interval);
    } else {
-      g_debug("%s: Poll loop disabled. Ignoring.\n", __FUNCTION__);
+      /*
+       * Channel got reset. VM might have vMotioned to an older host
+       * that doesn't send the 'Set_Option enableAppInfo'.
+       * Set gAppInfoEnabledInHost to TRUE and tweak the gather loop.
+       * Else, the application information may never be captured.
+       */
+      if (!gAppInfoEnabledInHost) {
+         gAppInfoEnabledInHost = TRUE;
+         TweakGatherLoop(ctx, TRUE);
+      } else {
+         g_debug("%s: Poll loop disabled. Ignoring.\n", __FUNCTION__);
+      }
    }
 }
 
@@ -677,7 +754,8 @@
       ToolsPluginSignalCb sigs[] = {
          { TOOLS_CORE_SIG_CONF_RELOAD, AppInfoServerConfReload, NULL },
          { TOOLS_CORE_SIG_SHUTDOWN, AppInfoServerShutdown, NULL },
-         { TOOLS_CORE_SIG_RESET, AppInfoServerReset, NULL }
+         { TOOLS_CORE_SIG_RESET, AppInfoServerReset, NULL },
+         { TOOLS_CORE_SIG_SET_OPTION, AppInfoServerSetOption, NULL }
       };
       ToolsAppReg regs[] = {
          { TOOLS_APP_SIGNALS,
@@ -692,7 +770,7 @@
       /*
        * Set up the AppInfo gather loop.
        */
-      TweakGatherLoop(ctx);
+      TweakGatherLoop(ctx, TRUE);
 
       return &regData;
    }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/open-vm-tools-11.1.0-16036546/services/plugins/dndcp/copyPasteUIX11.cpp 
new/open-vm-tools-11.1.5-16724464/services/plugins/dndcp/copyPasteUIX11.cpp
--- old/open-vm-tools-11.1.0-16036546/services/plugins/dndcp/copyPasteUIX11.cpp 
2020-04-15 07:05:25.000000000 +0200
+++ new/open-vm-tools-11.1.5-16724464/services/plugins/dndcp/copyPasteUIX11.cpp 
2020-08-10 15:51:36.000000000 +0200
@@ -1,5 +1,5 @@
 /*********************************************************
- * Copyright (C) 2009-2019 VMware, Inc. All rights reserved.
+ * Copyright (C) 2009-2020 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
@@ -97,14 +97,6 @@
 GdkAtom GDK_SELECTION_CLIPBOARD;
 #endif
 
-#ifndef GDK_SELECTION_TYPE_TIMESTAMP
-GdkAtom GDK_SELECTION_TYPE_TIMESTAMP;
-#endif
-
-#ifndef GDK_SELECTION_TYPE_UTF8_STRING
-GdkAtom GDK_SELECTION_TYPE_UTF8_STRING;
-#endif
-
 
 /*
  *-----------------------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/open-vm-tools-11.1.0-16036546/services/plugins/serviceDiscovery/get-connection-info.sh
 
new/open-vm-tools-11.1.5-16724464/services/plugins/serviceDiscovery/get-connection-info.sh
--- 
old/open-vm-tools-11.1.0-16036546/services/plugins/serviceDiscovery/get-connection-info.sh
  2020-04-15 07:05:01.000000000 +0200
+++ 
new/open-vm-tools-11.1.5-16724464/services/plugins/serviceDiscovery/get-connection-info.sh
  2020-08-10 15:51:05.000000000 +0200
@@ -1,16 +1,16 @@
 #!/bin/sh
 
 # check if necesary commands exist
-command -v netstat >/dev/null 2>&1 || { echo >&2 "netstat doesn't exist"; exit 
1; }
+command -v ss >/dev/null 2>&1 || { echo >&2 "ss doesn't exist"; exit 1; }
 command -v grep >/dev/null 2>&1 || { echo >&2 "grep doesn't exist"; exit 1; }
 command -v sort >/dev/null 2>&1 || { echo >&2 "sort doesn't exist"; exit 1; }
 command -v tr >/dev/null 2>&1 || { echo >&2 "tr doesn't exist"; exit 1; }
 
 # get pids of listening processes
-space_separated_pids=$(netstat -lntup | grep -Eo "[0-9]+/" | sort -u)
+space_separated_pids=$(ss -lntup | grep -Eo "pid=[0-9]+" | sort -u)
 
 # grep pattern
 pattern=$(echo $space_separated_pids | tr ' ' '|')
 
 # get matching lines
-netstat -antup | grep -E $pattern
+ss -antup | grep -E $pattern
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/open-vm-tools-11.1.0-16036546/services/plugins/serviceDiscovery/get-listening-process-info.sh
 
new/open-vm-tools-11.1.5-16724464/services/plugins/serviceDiscovery/get-listening-process-info.sh
--- 
old/open-vm-tools-11.1.0-16036546/services/plugins/serviceDiscovery/get-listening-process-info.sh
   2020-04-15 07:05:01.000000000 +0200
+++ 
new/open-vm-tools-11.1.5-16724464/services/plugins/serviceDiscovery/get-listening-process-info.sh
   2020-08-10 15:51:05.000000000 +0200
@@ -1,14 +1,14 @@
 #!/bin/sh
 
 # check if necesary commands exist
-command -v netstat >/dev/null 2>&1 || { echo >&2 "netstat doesn't exist"; exit 
1; }
+command -v ss >/dev/null 2>&1 || { echo >&2 "ss doesn't exist"; exit 1; }
 command -v grep >/dev/null 2>&1 || { echo >&2 "grep doesn't exist"; exit 1; }
 command -v sort >/dev/null 2>&1 || { echo >&2 "sort doesn't exist"; exit 1; }
 command -v tr >/dev/null 2>&1 || { echo >&2 "tr doesn't exist"; exit 1; }
 command -v ps >/dev/null 2>&1 || { echo >&2 "ps doesn't exist"; exit 1; }
 
 # get pids of listening processes
-space_separated_pids=$(netstat -lntup | grep -Eo "[0-9]+/" | grep -Eo "[0-9]*" 
| sort -u)
+space_separated_pids=$(ss -lntup | grep -Eo "pid=[0-9]+" | grep -Eo "[0-9]*" | 
sort -u)
 
 # ps accepts comma separated pids
 comma_separated_pids=$(echo $space_separated_pids | tr ' ' ',')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/open-vm-tools-11.1.0-16036546/services/plugins/serviceDiscovery/get-listening-process-perf-metrics.sh
 
new/open-vm-tools-11.1.5-16724464/services/plugins/serviceDiscovery/get-listening-process-perf-metrics.sh
--- 
old/open-vm-tools-11.1.0-16036546/services/plugins/serviceDiscovery/get-listening-process-perf-metrics.sh
   2020-04-15 07:05:01.000000000 +0200
+++ 
new/open-vm-tools-11.1.5-16724464/services/plugins/serviceDiscovery/get-listening-process-perf-metrics.sh
   2020-08-10 15:51:05.000000000 +0200
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 # check if necesary commands exist
-command -v netstat >/dev/null 2>&1 || { echo >&2 "netstat doesn't exist"; exit 
1; }
+command -v ss >/dev/null 2>&1 || { echo >&2 "ss doesn't exist"; exit 1; }
 command -v grep >/dev/null 2>&1 || { echo >&2 "grep doesn't exist"; exit 1; }
 command -v sort >/dev/null 2>&1 || { echo >&2 "sort doesn't exist"; exit 1; }
 command -v awk >/dev/null 2>&1 || { echo >&2 "awk doesn't exist"; exit 1; }
@@ -108,6 +108,6 @@
   run $pids
 }
 
-space_separated_pids=$(netstat -lntup | grep -Eo "[0-9]+/" | grep -Eo "[0-9]+" 
| sort -u)
+space_separated_pids=$(ss -lntup | grep -Eo "pid=[0-9]+" | grep -Eo "[0-9]+" | 
sort -u)
 
 get_performance_metrics $space_separated_pids
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/open-vm-tools-11.1.0-16036546/services/plugins/serviceDiscovery/get-versions.sh
 
new/open-vm-tools-11.1.5-16724464/services/plugins/serviceDiscovery/get-versions.sh
--- 
old/open-vm-tools-11.1.0-16036546/services/plugins/serviceDiscovery/get-versions.sh
 2020-04-15 07:05:01.000000000 +0200
+++ 
new/open-vm-tools-11.1.5-16724464/services/plugins/serviceDiscovery/get-versions.sh
 2020-08-10 15:51:05.000000000 +0200
@@ -1,12 +1,12 @@
 #!/bin/sh
 
 # check if necesary commands exist
-command -v netstat >/dev/null 2>&1 || { echo >&2 "netstat doesn't exist"; exit 
1; }
+command -v ss >/dev/null 2>&1 || { echo >&2 "ss doesn't exist"; exit 1; }
 command -v grep >/dev/null 2>&1 || { echo >&2 "grep doesn't exist"; exit 1; }
 command -v sort >/dev/null 2>&1 || { echo >&2 "sort doesn't exist"; exit 1; }
 command -v ps >/dev/null 2>&1 || { echo >&2 "ps doesn't exist"; exit 1; }
 
-space_separated_pids=$(netstat -lntup | grep -Eo "[0-9]+/" | grep -Eo "[0-9]*" 
| sort -u)
+space_separated_pids=$(ss -lntup | grep -Eo "pid=[0-9]+" | grep -Eo "[0-9]*" | 
sort -u)
 
 get_command_line() {
   ps --pid $1 -o command
@@ -23,7 +23,7 @@
 }
 
 get_vcops_version() {
-  cat $ALIVE_BASE/user/conf/lastbuildversion.txt 2>/dev/null
+  cat /usr/lib/vmware-vcops/user/conf/lastbuildversion.txt 2>/dev/null
 }
 
 get_srm_mgt_server_version() {
@@ -76,10 +76,15 @@
   db2level 2>/dev/null | grep "DB2 v"
 }
 
+get_tcserver_version() {
+  command -v tcserver >/dev/null 2>&1 && { tcserver version 2>/dev/null; }
+}
+
 echo VERSIONSTART "vcops_version" "$(get_vcops_version)" VERSIONEND
 echo VERSIONSTART "srm_mgt_server_version" "$(get_srm_mgt_server_version)" 
VERSIONEND
 echo VERSIONSTART "vcenter_appliance_version" 
"$(get_vcenter_appliance_version)" VERSIONEND
 echo VERSIONSTART "db2_version" "$(get_db2_version)" VERSIONEND
+echo VERSIONSTART "tcserver_version" "$(get_tcserver_version)" VERSIONEND
 
 get_version "/\S+/(httpd-prefork|httpd|httpd2-prefork)($|\s)" -v
 get_version "/usr/(bin|sbin)/apache\S*" -v
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/open-vm-tools-11.1.0-16036546/services/plugins/serviceDiscovery/serviceDiscovery.c
 
new/open-vm-tools-11.1.5-16724464/services/plugins/serviceDiscovery/serviceDiscovery.c
--- 
old/open-vm-tools-11.1.0-16036546/services/plugins/serviceDiscovery/serviceDiscovery.c
      2020-04-15 07:05:25.000000000 +0200
+++ 
new/open-vm-tools-11.1.5-16724464/services/plugins/serviceDiscovery/serviceDiscovery.c
      2020-08-10 15:51:36.000000000 +0200
@@ -128,6 +128,11 @@
  */
 #define SERVICE_DISCOVERY_RPC_WAIT_TIME 100
 
+/*
+ * Maximum number of keys that can be deleted by one operation
+ */
+#define SERVICE_DISCOVERY_DELETE_CHUNK_SIZE 25
+
 
 typedef struct {
    gchar *keyName;
@@ -381,9 +386,9 @@
    status = SendRpcMessage(ctx, DynBuf_Get(&buf), DynBuf_GetSize(&buf),
                            resultData, resultDataLen);
    if (!status) {
-      g_warning("%s: Read over RPC failed, result: %s, resultDataLen: %" FMTSZ
-                "u\n", __FUNCTION__, (*resultData != NULL) ?
-                *resultData : "(null)", *resultDataLen);
+      g_debug("%s: Read over RPC failed, result: %s, resultDataLen: %" FMTSZ
+              "u\n", __FUNCTION__, (*resultData != NULL) ?
+              *resultData : "(null)", *resultDataLen);
    }
 done:
    DynBuf_Destroy(&buf);
@@ -395,22 +400,104 @@
  *****************************************************************************
  * DeleteData --
  *
- * Deletes key/value from Namespace DB.
+ * Deletes keys/values from Namespace DB.
  *
  * @param[in] ctx       Application context.
- * @param[in] key       Key of entry to be deleted from the Namespace DB
+ * @param[in] keys      Keys of entries to be deleted from the Namespace DB
  *
  * @retval TRUE  Namespace DB delete over RPC succeeded.
- * @retval FALSE Namespace DB delete over RPC failed.
+ * @retval FALSE Namespace DB delete over RPC failed or command buffer has not
+ *               been constructed correctly.
  *
  *****************************************************************************
  */
 
 static Bool
 DeleteData(ToolsAppCtx *ctx,
-           const char *key)
+           const GPtrArray* keys)
 {
-   return WriteData(ctx, key, NULL, 0);
+   Bool status = FALSE;
+   DynBuf buf;
+   int i;
+   gchar *numKeys = g_strdup_printf("%d", keys->len);
+
+   DynBuf_Init(&buf);
+
+   /*
+    * Format is:
+    *
+    * namespace-set-keys <namespace>\0<numOps>\0<op>\0<key>\0<value>\0<oldVal>
+    *
+    */
+   if (!DynBuf_Append(&buf, NSDB_PRIV_SET_KEYS_CMD,
+                      strlen(NSDB_PRIV_SET_KEYS_CMD)) ||
+       !DynBuf_Append(&buf, " ", 1) ||
+       !DynBuf_AppendString(&buf, SERVICE_DISCOVERY_NAMESPACE_DB_NAME) ||
+       !DynBuf_AppendString(&buf, numKeys)) { // numOps
+      g_warning("%s: Could not construct buffer header\n", __FUNCTION__);
+      goto out;
+   }
+   for (i = 0; i < keys->len; ++i) {
+      const char *key = (const char *) g_ptr_array_index(keys, i);
+      g_debug("%s: Adding key %s to buffer\n", __FUNCTION__, key);
+      if (!DynBuf_AppendString(&buf, "0") ||
+          !DynBuf_AppendString(&buf, key) ||
+          !DynBuf_Append(&buf, "", 1) ||
+          !DynBuf_Append(&buf, "", 1)) {
+         g_warning("%s: Could not construct delete buffer\n", __FUNCTION__);
+         goto out;
+      }
+   }
+   if (!DynBuf_Append(&buf, "", 1)) {
+      g_warning("%s: Could not construct buffer footer\n", __FUNCTION__);
+      goto out;
+   } else {
+      char *result = NULL;
+      size_t resultLen;
+
+      status = SendRpcMessage(ctx, DynBuf_Get(&buf), DynBuf_GetSize(&buf),
+                              &result, &resultLen);
+      if (!status) {
+         g_warning("%s: Failed to delete keys, result: %s resultLen: %" FMTSZ
+                   "u\n", __FUNCTION__, (result != NULL) ? result : "(null)",
+                   resultLen);
+      }
+
+      free(result);
+   }
+
+out:
+   DynBuf_Destroy(&buf);
+   g_free(numKeys);
+   return status;
+}
+
+
+/*
+ *****************************************************************************
+ * DeleteDataAndFree --
+ *
+ * Deletes the specified keys in Namespace DB and frees memory
+ * for every key.
+ *
+ * @param[in] ctx           Application context.
+ * @param[in/out] keys      Keys to be deleted.
+ *
+ *****************************************************************************
+ */
+
+static void
+DeleteDataAndFree(ToolsAppCtx *ctx,
+                  GPtrArray *keys) {
+   int j;
+
+   if (!DeleteData(ctx, keys)) {
+      g_warning("%s: Failed to delete data\n", __FUNCTION__);
+   }
+   for (j = 0; j < keys->len; ++j) {
+      g_free((gchar *) g_ptr_array_index(keys, j));
+   }
+   g_ptr_array_set_size(keys, 0);
 }
 
 
@@ -428,6 +515,7 @@
 static void
 CleanupNamespaceDB(ToolsAppCtx *ctx) {
    int i;
+   GPtrArray *keys = g_ptr_array_new();
 
    g_debug("%s: Performing cleanup of previous data\n", __FUNCTION__);
 
@@ -445,12 +533,9 @@
          char *token = NULL;
          g_debug("%s: Read %s from Namespace DB\n", __FUNCTION__, value);
 
-         /*
-         * Delete this key anyways, afterwards check for chunks
-         */
-         if (!DeleteData(ctx, tmp.keyName)) {
-            g_warning("%s: Not able to delete entry %s", __FUNCTION__,
-                      tmp.keyName);
+         g_ptr_array_add(keys, g_strdup(tmp.keyName));
+         if (keys->len >= SERVICE_DISCOVERY_DELETE_CHUNK_SIZE) {
+            DeleteDataAndFree(ctx, keys);
          }
 
          if (NULL == strtok(value, ",")) {
@@ -466,16 +551,13 @@
          if (token != NULL) {
             int count = (int) g_ascii_strtoll(token, NULL, 10);
             int j;
-            gchar *msg = NULL;
 
             for (j = 0; j < count; j++) {
-               msg = g_strdup_printf("%s-%d", tmp.keyName, j + 1);
-               g_debug("%s: Deleting entry %s",__FUNCTION__, msg);
-               if (!DeleteData(ctx, msg)) {
-                  g_warning("%s: Not able to delete entry %s",
-                            __FUNCTION__, msg);
+               gchar *msg = g_strdup_printf("%s-%d", tmp.keyName, j + 1);
+               g_ptr_array_add(keys, msg);
+               if (keys->len >= SERVICE_DISCOVERY_DELETE_CHUNK_SIZE) {
+                  DeleteDataAndFree(ctx, keys);
                }
-               g_free(msg);
             }
          } else {
             g_warning("%s: Chunk count has invalid value %s", __FUNCTION__,
@@ -485,12 +567,15 @@
          g_warning("%s: Key %s not found in Namespace DB\n", __FUNCTION__,
                    tmp.keyName);
       }
-
       if (value) {
          free(value);
          value = NULL;
       }
    }
+   if (keys->len >= 1) {
+      DeleteDataAndFree(ctx, keys);
+   }
+   g_ptr_array_free(keys, TRUE);
 }
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/open-vm-tools-11.1.0-16036546/vgauth/common/prefs.c 
new/open-vm-tools-11.1.5-16724464/vgauth/common/prefs.c
--- old/open-vm-tools-11.1.0-16036546/vgauth/common/prefs.c     2020-04-15 
07:05:25.000000000 +0200
+++ new/open-vm-tools-11.1.5-16724464/vgauth/common/prefs.c     2020-08-10 
15:51:36.000000000 +0200
@@ -1,5 +1,5 @@
 /*********************************************************
- * Copyright (C) 2011-2016 VMware, Inc. All rights reserved.
+ * Copyright (C) 2011-2016,2020 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
@@ -264,7 +264,7 @@
                                      groupNames[i],
                                      &numKeys,
                                      &gErr);
-      if ((NULL == keyNames) && (NULL != gErr)) {
+      if (NULL != gErr) {
          g_warning("%s: g_key_file_get_keys(%s) failed: %s\n",
                    __FUNCTION__, groupNames[i], gErr->message);
          g_error_free(gErr);


Reply via email to