Merge ~paelzer/ubuntu/+source/open-vm-tools:bug-1844834-v11-eoan into ubuntu/+source/open-vm-tools:ubuntu/eoan-devel

Proposed by Christian Ehrhardt 
Status: Merged
Approved by: Christian Ehrhardt 
Approved revision: 400068cf1c1df2dbf46475b564b3e3cbb2d4005e
Merged at revision: 400068cf1c1df2dbf46475b564b3e3cbb2d4005e
Proposed branch: ~paelzer/ubuntu/+source/open-vm-tools:bug-1844834-v11-eoan
Merge into: ubuntu/+source/open-vm-tools:ubuntu/eoan-devel
Diff against target: 238194 lines (+33393/-40119) (has conflicts)
304 files modified
ReleaseNotes.md (+46/-25)
debian/.gitlab-ci.yml (+14/-0)
debian/changelog (+51/-0)
debian/control (+3/-3)
debian/open-vm-tools.vgauth.service (+1/-0)
debian/patches/89c0d4445_GitHub-Issue-367.-Remove-references-to-deprecated-G_INLINE_FUNC (+43/-12)
debian/patches/add_patch.sh (+14/-0)
debian/patches/fix_zfs_fs_detection (+13/-0)
debian/patches/series (+5/-0)
dev/null (+0/-62)
open-vm-tools/AUTHORS (+9/-0)
open-vm-tools/ChangeLog (+13979/-34669)
open-vm-tools/Makefile.am (+8/-13)
open-vm-tools/checkvm/checkvm.c (+6/-1)
open-vm-tools/configure.ac (+30/-118)
open-vm-tools/hgfsclient/hgfsclient.c (+7/-1)
open-vm-tools/hgfsmounter/hgfsmounter.c (+9/-5)
open-vm-tools/lib/appUtil/appUtilX11.c (+19/-9)
open-vm-tools/lib/asyncsocket/asyncsocket.c (+171/-11)
open-vm-tools/lib/auth/authPosix.c (+74/-16)
open-vm-tools/lib/file/file.c (+2/-1)
open-vm-tools/lib/file/fileIO.c (+5/-6)
open-vm-tools/lib/file/fileInt.h (+4/-3)
open-vm-tools/lib/file/fileLockPosix.c (+7/-12)
open-vm-tools/lib/file/filePosix.c (+146/-131)
open-vm-tools/lib/glibUtils/fileLogger.c (+9/-12)
open-vm-tools/lib/glibUtils/stdLogger.c (+6/-6)
open-vm-tools/lib/glibUtils/sysLogger.c (+6/-6)
open-vm-tools/lib/hgfsServer/hgfsServer.c (+17/-12)
open-vm-tools/lib/hgfsServer/hgfsServerLinux.c (+1/-1)
open-vm-tools/lib/hgfsServer/hgfsServerPacketUtil.c (+2/-8)
open-vm-tools/lib/hgfsServerManagerGuest/hgfsServerManagerGuest.c (+86/-18)
open-vm-tools/lib/hgfsServerPolicyGuest/hgfsServerPolicyGuest.c (+6/-1)
open-vm-tools/lib/include/appUtil.h (+3/-1)
open-vm-tools/lib/include/asyncsocket.h (+27/-2)
open-vm-tools/lib/include/auth.h (+3/-1)
open-vm-tools/lib/include/backdoor_def.h (+182/-15)
open-vm-tools/lib/include/backdoor_types.h (+3/-2)
open-vm-tools/lib/include/buildNumber.h (+6/-6)
open-vm-tools/lib/include/capsProvider.h (+2/-1)
open-vm-tools/lib/include/circList.h (+29/-1)
open-vm-tools/lib/include/conf.h (+106/-1)
open-vm-tools/lib/include/deployPkg/linuxDeployment.h (+28/-1)
open-vm-tools/lib/include/dynarray.h (+17/-1)
open-vm-tools/lib/include/dynbuf.h (+42/-1)
open-vm-tools/lib/include/err.h (+1/-1)
open-vm-tools/lib/include/file.h (+8/-4)
open-vm-tools/lib/include/ghIntegrationCommon.h (+130/-18)
open-vm-tools/lib/include/guestInfo.h (+17/-1)
open-vm-tools/lib/include/guest_os.h (+44/-12)
open-vm-tools/lib/include/guest_os_tables.h (+19/-201)
open-vm-tools/lib/include/hashTable.h (+2/-2)
open-vm-tools/lib/include/hgfsServer.h (+10/-5)
open-vm-tools/lib/include/hostinfo.h (+24/-10)
open-vm-tools/lib/include/includeCheck.h (+11/-28)
open-vm-tools/lib/include/ioplGet.h (+1/-1)
open-vm-tools/lib/include/log.h (+43/-2)
open-vm-tools/lib/include/logToHost.h (+32/-0)
open-vm-tools/lib/include/loglevel_user.h (+11/-4)
open-vm-tools/lib/include/mutexRankLib.h (+2/-1)
open-vm-tools/lib/include/posix.h (+1/-1)
open-vm-tools/lib/include/procMgr.h (+9/-1)
open-vm-tools/lib/include/product.h (+3/-4)
open-vm-tools/lib/include/productState.h (+5/-4)
open-vm-tools/lib/include/random.h (+3/-1)
open-vm-tools/lib/include/rpcin.h (+1/-1)
open-vm-tools/lib/include/rpcout.h (+1/-7)
open-vm-tools/lib/include/rpcvmx.h (+2/-13)
open-vm-tools/lib/include/rpcvmxext.h (+49/-0)
open-vm-tools/lib/include/sha1.h (+26/-1)
open-vm-tools/lib/include/unicodeBase.h (+1/-1)
open-vm-tools/lib/include/unicodeTypes.h (+3/-1)
open-vm-tools/lib/include/util.h (+6/-1)
open-vm-tools/lib/include/vixCommands.h (+1/-2)
open-vm-tools/lib/include/vmGuestAppMonitorLib.h (+187/-0)
open-vm-tools/lib/include/vmGuestLib.h (+10/-1)
open-vm-tools/lib/include/vm_assert.h (+2/-2)
open-vm-tools/lib/include/vm_atomic.h (+10/-7)
open-vm-tools/lib/include/vm_basic_asm.h (+132/-102)
open-vm-tools/lib/include/vm_basic_asm_x86.h (+20/-35)
open-vm-tools/lib/include/vm_basic_asm_x86_64.h (+44/-66)
open-vm-tools/lib/include/vm_basic_asm_x86_common.h (+403/-57)
open-vm-tools/lib/include/vm_basic_defs.h (+67/-61)
open-vm-tools/lib/include/vm_basic_types.h (+107/-206)
open-vm-tools/lib/include/vm_device_version.h (+21/-16)
open-vm-tools/lib/include/vm_product.h (+19/-20)
open-vm-tools/lib/include/vm_product_versions.h (+58/-61)
open-vm-tools/lib/include/vm_tools_version.h (+54/-4)
open-vm-tools/lib/include/vm_version.h (+3/-1)
open-vm-tools/lib/include/vmci_defs.h (+24/-2)
open-vm-tools/lib/include/vmci_sockets.h (+8/-1)
open-vm-tools/lib/include/vmstdio.h (+5/-1)
open-vm-tools/lib/include/vmware/guestrpc/deploypkg.h (+2/-1)
open-vm-tools/lib/include/vmware/guestrpc/guestcust-events.h (+42/-0)
open-vm-tools/lib/include/vmware/guestrpc/tclodefs.h (+16/-1)
open-vm-tools/lib/include/vmware/guestrpc/timesync.h (+3/-1)
open-vm-tools/lib/include/vmware/tools/desktopevents.h (+8/-1)
open-vm-tools/lib/include/vmware/tools/guestrpc.h (+25/-4)
open-vm-tools/lib/include/vmware/tools/log.h (+44/-2)
open-vm-tools/lib/include/vmware/tools/plugin.h (+10/-1)
open-vm-tools/lib/include/vmware/tools/threadPool.h (+5/-2)
open-vm-tools/lib/include/vmware/tools/utils.h (+1/-7)
open-vm-tools/lib/include/wiper.h (+9/-3)
open-vm-tools/lib/include/x86_basic_defs.h (+11/-2)
open-vm-tools/lib/include/x86cpuid.h (+923/-867)
open-vm-tools/lib/include/x86cpuid_asm.h (+35/-24)
open-vm-tools/lib/lock/ul.c (+6/-6)
open-vm-tools/lib/lock/ulBarrier.c (+3/-3)
open-vm-tools/lib/lock/ulExcl.c (+3/-3)
open-vm-tools/lib/lock/ulInt.h (+6/-8)
open-vm-tools/lib/lock/ulIntShared.h (+2/-2)
open-vm-tools/lib/lock/ulRW.c (+3/-3)
open-vm-tools/lib/lock/ulRec.c (+4/-4)
open-vm-tools/lib/lock/ulSema.c (+3/-3)
open-vm-tools/lib/lock/ulStats.c (+28/-92)
open-vm-tools/lib/misc/dynbuf.c (+61/-1)
open-vm-tools/lib/misc/hostinfo.c (+61/-54)
open-vm-tools/lib/misc/hostinfoHV.c (+2/-2)
open-vm-tools/lib/misc/hostinfoInt.h (+30/-8)
open-vm-tools/lib/misc/hostinfoPosix.c (+531/-220)
open-vm-tools/lib/misc/idLinux.c (+40/-12)
open-vm-tools/lib/misc/prng.c (+15/-1)
open-vm-tools/lib/misc/sha1.c (+1/-429)
open-vm-tools/lib/misc/timeutil.c (+2/-2)
open-vm-tools/lib/misc/utilMem.c (+34/-1)
open-vm-tools/lib/misc/util_misc.c (+3/-3)
open-vm-tools/lib/misc/vmstdio.c (+35/-1)
open-vm-tools/lib/misc/vthreadBase.c (+1/-1)
open-vm-tools/lib/nicInfo/nicInfoPosix.c (+41/-6)
open-vm-tools/lib/panic/panic.c (+11/-11)
open-vm-tools/lib/poll/poll.c (+299/-95)
open-vm-tools/lib/procMgr/procMgrPosix.c (+82/-16)
open-vm-tools/lib/rpcChannel/bdoorChannel.c (+3/-2)
open-vm-tools/lib/rpcChannel/glib_stubs.c (+43/-0)
open-vm-tools/lib/rpcChannel/rpcChannel.c (+253/-135)
open-vm-tools/lib/rpcChannel/rpcChannelInt.h (+2/-4)
open-vm-tools/lib/rpcChannel/vsockChannel.c (+4/-3)
open-vm-tools/lib/rpcIn/rpcin.c (+1/-1)
open-vm-tools/lib/rpcOut/rpcout.c (+4/-2)
open-vm-tools/lib/sslDirect/Makefile.am (+2/-9)
open-vm-tools/lib/sslDirect/sslDirect.c (+1/-1)
open-vm-tools/lib/stubs/stub-log.c (+57/-2)
open-vm-tools/lib/stubs/stub-panic.c (+2/-1)
open-vm-tools/lib/stubs/stub-warning.c (+3/-2)
open-vm-tools/lib/syncDriver/syncDriverPosix.c (+27/-5)
open-vm-tools/lib/system/systemLinux.c (+12/-2)
open-vm-tools/lib/unicode/unicodeICU.c (+17/-13)
open-vm-tools/lib/unicode/unicodeSimpleTypes.c (+36/-2)
open-vm-tools/lib/user/util.c (+46/-10)
open-vm-tools/lib/user/utilBacktrace.c (+3/-2)
open-vm-tools/lib/wiper/wiperCommon.c (+5/-1)
open-vm-tools/lib/wiper/wiperPosix.c (+50/-6)
open-vm-tools/libDeployPkg/Makefile.am (+2/-2)
open-vm-tools/libDeployPkg/deployPkgFormat.h (+22/-19)
open-vm-tools/libDeployPkg/linuxDeployment.c (+225/-111)
open-vm-tools/libDeployPkg/mspackWrapper.c (+3/-2)
open-vm-tools/libappmonitor/COPYING (+502/-0)
open-vm-tools/libappmonitor/Makefile.am (+74/-0)
open-vm-tools/libappmonitor/appmonitor.pc.in (+13/-0)
open-vm-tools/libappmonitor/stub-debug.c (+67/-0)
open-vm-tools/libappmonitor/vmGuestAppMonitorLib.c (+462/-0)
open-vm-tools/libappmonitor/vmGuestAppMonitorLibInt.h (+56/-0)
open-vm-tools/libappmonitor/vmguestappmonitorlib_version.h (+35/-0)
open-vm-tools/libguestlib/guestlibV3.x (+7/-2)
open-vm-tools/libguestlib/vmGuestLib.c (+43/-1)
open-vm-tools/libvmtools/Makefile.am (+1/-6)
open-vm-tools/libvmtools/i18n.c (+13/-11)
open-vm-tools/libvmtools/vmtoolsConfig.c (+7/-289)
open-vm-tools/libvmtools/vmtoolsLog.c (+1103/-94)
open-vm-tools/libvmtools/vmxLogger.c (+1/-12)
open-vm-tools/m4/vmtools.m4 (+14/-16)
open-vm-tools/modules/freebsd/vmmemctl/os.c (+37/-23)
open-vm-tools/modules/shared/vmmemctl/backdoor_balloon.c (+63/-26)
open-vm-tools/modules/shared/vmmemctl/backdoor_balloon.h (+6/-6)
open-vm-tools/modules/shared/vmmemctl/balloon_def.h (+3/-2)
open-vm-tools/modules/shared/vmmemctl/vmballoon.c (+17/-17)
open-vm-tools/modules/shared/vmmemctl/vmballoon.h (+7/-7)
open-vm-tools/modules/shared/vmxnet/eth_public.h (+10/-4)
open-vm-tools/modules/shared/vmxnet/net.h (+3/-1)
open-vm-tools/modules/shared/vmxnet/upt1_defs.h (+2/-2)
open-vm-tools/modules/shared/vmxnet/vmnet_def.h (+4/-3)
open-vm-tools/modules/shared/vmxnet/vmxnet3_defs.h (+107/-1)
open-vm-tools/modules/solaris/vmxnet3/vmxnet3_main.c (+4/-2)
open-vm-tools/modules/solaris/vmxnet3/vmxnet3_tx.c (+8/-5)
open-vm-tools/namespacetool/namespacetool.c (+8/-1)
open-vm-tools/rpctool/rpctool.c (+8/-1)
open-vm-tools/scripts/Makefile.am (+0/-3)
open-vm-tools/scripts/common/vm-support (+4/-2)
open-vm-tools/services/plugins/Makefile.am (+1/-4)
open-vm-tools/services/plugins/deployPkg/deployPkg.c (+38/-3)
open-vm-tools/services/plugins/deployPkg/deployPkgLog.c (+3/-0)
open-vm-tools/services/plugins/dndcp/Makefile.am (+19/-9)
open-vm-tools/services/plugins/dndcp/copyPasteCompatX11.c (+19/-26)
open-vm-tools/services/plugins/dndcp/copyPasteDnDX11.cpp (+2/-1)
open-vm-tools/services/plugins/dndcp/copyPasteUIX11.cpp (+24/-4)
open-vm-tools/services/plugins/dndcp/dnd/dnd.h (+32/-4)
open-vm-tools/services/plugins/dndcp/dnd/dndCPMsgV4.c (+24/-8)
open-vm-tools/services/plugins/dndcp/dnd/dndCPMsgV4.h (+14/-2)
open-vm-tools/services/plugins/dndcp/dnd/dndClipboard.c (+18/-7)
open-vm-tools/services/plugins/dndcp/dnd/dndClipboard.h (+9/-1)
open-vm-tools/services/plugins/dndcp/dnd/dndCommon.c (+152/-0)
open-vm-tools/services/plugins/dndcp/dnd/dndRpcV4.hh (+3/-1)
open-vm-tools/services/plugins/dndcp/dndGuest/dndRpcV4.cc (+14/-1)
open-vm-tools/services/plugins/dndcp/dndGuest/rpcV4Util.cpp (+35/-5)
open-vm-tools/services/plugins/dndcp/dndGuest/rpcV4Util.hpp (+4/-1)
open-vm-tools/services/plugins/dndcp/dndGuest/vmGuestDnDCPMgr.cc (+131/-0)
open-vm-tools/services/plugins/dndcp/dndGuest/vmGuestDnDCPMgr.hh (+56/-0)
open-vm-tools/services/plugins/dndcp/dndGuest/vmGuestDnDMgr.cc (+166/-0)
open-vm-tools/services/plugins/dndcp/dndGuest/vmGuestDnDMgr.hh (+53/-0)
open-vm-tools/services/plugins/dndcp/dndGuest/vmGuestDnDSrc.cc (+103/-0)
open-vm-tools/services/plugins/dndcp/dndGuest/vmGuestDnDSrc.hh (+41/-0)
open-vm-tools/services/plugins/dndcp/dndGuest/vmGuestFileTransfer.cc (+97/-0)
open-vm-tools/services/plugins/dndcp/dndGuest/vmGuestFileTransfer.hh (+51/-0)
open-vm-tools/services/plugins/dndcp/dndGuestBase/copyPasteDnDImpl.h (+55/-0)
open-vm-tools/services/plugins/dndcp/dndGuestBase/copyPasteDnDWrapper.cpp (+509/-0)
open-vm-tools/services/plugins/dndcp/dndGuestBase/copyPasteDnDWrapper.h (+88/-0)
open-vm-tools/services/plugins/dndcp/dndGuestBase/copyPasteDnDX11.h (+64/-0)
open-vm-tools/services/plugins/dndcp/dndGuestBase/dndFileList.cc (+715/-0)
open-vm-tools/services/plugins/dndcp/dndGuestBase/dndFileList.hh (+84/-0)
open-vm-tools/services/plugins/dndcp/dndGuestBase/dndPluginInt.h (+44/-0)
open-vm-tools/services/plugins/dndcp/dndGuestBase/dndRpcV3.cc (+693/-0)
open-vm-tools/services/plugins/dndcp/dndGuestBase/dndRpcV3.hh (+110/-0)
open-vm-tools/services/plugins/dndcp/dndGuestBase/dndUIX11.h (+240/-0)
open-vm-tools/services/plugins/dndcp/dndGuestBase/dragDetWndX11.h (+97/-0)
open-vm-tools/services/plugins/dndcp/dndGuestBase/guestCopyPaste.hh (+136/-0)
open-vm-tools/services/plugins/dndcp/dndGuestBase/guestDnD.hh (+205/-0)
open-vm-tools/services/plugins/dndcp/dndGuestBase/guestDnDCPMgr.cc (+141/-0)
open-vm-tools/services/plugins/dndcp/dndGuestBase/guestDnDCPMgr.hh (+66/-0)
open-vm-tools/services/plugins/dndcp/dndGuestBase/guestDnDDest.cc (+254/-0)
open-vm-tools/services/plugins/dndcp/dndGuestBase/guestDnDMgr.cc (+631/-0)
open-vm-tools/services/plugins/dndcp/dndGuestBase/guestDnDSrc.cc (+277/-0)
open-vm-tools/services/plugins/dndcp/dndGuestBase/guestFileTransfer.cc (+52/-0)
open-vm-tools/services/plugins/dndcp/dndGuestBase/guestFileTransfer.hh (+43/-0)
open-vm-tools/services/plugins/dndcp/dndUIX11.cpp (+126/-54)
open-vm-tools/services/plugins/dndcp/dndcp.cpp (+25/-1)
open-vm-tools/services/plugins/dndcp/dragDetWndX11.cpp (+50/-13)
open-vm-tools/services/plugins/dndcp/fakeMouseWayland/fakeMouseWayland.cpp (+3/-2)
open-vm-tools/services/plugins/dndcp/pointer.cpp (+1/-1)
open-vm-tools/services/plugins/dndcp/stringxx/string.cc (+2/-1)
open-vm-tools/services/plugins/dndcp/stringxx/string.hh (+3/-3)
open-vm-tools/services/plugins/dndcp/stringxx/ubstr_t.hh (+3/-3)
open-vm-tools/services/plugins/dndcp/vmCopyPasteDnDWrapper.cpp (+388/-0)
open-vm-tools/services/plugins/dndcp/vmCopyPasteDnDWrapper.h (+59/-0)
open-vm-tools/services/plugins/dndcp/xutils/xutils.cc (+89/-5)
open-vm-tools/services/plugins/dndcp/xutils/xutils.hh (+4/-2)
open-vm-tools/services/plugins/guestInfo/diskInfo.c (+823/-21)
open-vm-tools/services/plugins/guestInfo/diskInfoPosix.c (+17/-5)
open-vm-tools/services/plugins/guestInfo/guestInfoInt.h (+44/-6)
open-vm-tools/services/plugins/guestInfo/guestInfoServer.c (+588/-187)
open-vm-tools/services/plugins/guestInfo/perfMonLinux.c (+1/-1)
open-vm-tools/services/plugins/hgfsServer/hgfsPlugin.c (+1/-1)
open-vm-tools/services/plugins/powerOps/powerOps.c (+8/-3)
open-vm-tools/services/plugins/vix/foundryToolsDaemon.c (+1/-220)
open-vm-tools/services/plugins/vix/vixPlugin.c (+1/-3)
open-vm-tools/services/plugins/vix/vixPluginInt.h (+1/-4)
open-vm-tools/services/plugins/vix/vixTools.c (+289/-104)
open-vm-tools/services/plugins/vix/vixToolsInt.h (+4/-2)
open-vm-tools/services/plugins/vmbackup/scriptOps.c (+5/-2)
open-vm-tools/services/plugins/vmbackup/stateMachine.c (+10/-8)
open-vm-tools/services/plugins/vmbackup/vmBackupInt.h (+4/-4)
open-vm-tools/services/vmtoolsd/Makefile.am (+2/-1)
open-vm-tools/services/vmtoolsd/cmdLine.c (+1/-3)
open-vm-tools/services/vmtoolsd/mainLoop.c (+107/-5)
open-vm-tools/services/vmtoolsd/mainPosix.c (+11/-4)
open-vm-tools/services/vmtoolsd/serviceObj.c (+19/-9)
open-vm-tools/services/vmtoolsd/serviceObj.h (+2/-2)
open-vm-tools/services/vmtoolsd/threadPool.c (+26/-26)
open-vm-tools/services/vmtoolsd/toolsCoreInt.h (+3/-1)
open-vm-tools/services/vmtoolsd/toolsHangDetector.c (+534/-0)
open-vm-tools/services/vmtoolsd/toolsHangDetector.h (+31/-0)
open-vm-tools/services/vmtoolsd/toolsRpc.c (+1/-1)
open-vm-tools/tests/testVmblock/vmblocktest.c (+3/-2)
open-vm-tools/toolbox/toolbox-cmd.c (+51/-14)
open-vm-tools/toolbox/toolboxCmdInt.h (+17/-6)
open-vm-tools/toolbox/toolboxcmd-info.c (+2/-2)
open-vm-tools/toolbox/toolboxcmd-shrink.c (+10/-5)
open-vm-tools/toolbox/toolboxcmd-stat.c (+11/-8)
open-vm-tools/toolbox/toolboxcmd-time.c (+3/-4)
open-vm-tools/tools.conf (+256/-0)
open-vm-tools/vgauth/cli/main.c (+4/-1)
open-vm-tools/vgauth/common/certverify.c (+7/-3)
open-vm-tools/vgauth/common/i18n.c (+36/-24)
open-vm-tools/vgauth/common/prefs.h (+9/-1)
open-vm-tools/vgauth/common/vmxlog.c (+640/-0)
open-vm-tools/vgauth/common/vmxlog.h (+45/-0)
open-vm-tools/vgauth/lib/authPosix.c (+2/-2)
open-vm-tools/vgauth/service/Makefile.am (+2/-1)
open-vm-tools/vgauth/service/fileLogger.c (+1/-5)
open-vm-tools/vgauth/service/gio.c (+4/-1)
open-vm-tools/vgauth/service/main.c (+12/-1)
open-vm-tools/vgauth/service/service.h (+2/-1)
open-vm-tools/vgauth/serviceImpl/alias.c (+21/-1)
open-vm-tools/vgauth/serviceImpl/proto.c (+3/-1)
open-vm-tools/vgauth/serviceImpl/saml-xmlsec1.c (+44/-4)
open-vm-tools/vgauth/serviceImpl/service.c (+2/-1)
open-vm-tools/vgauth/serviceImpl/verify.c (+20/-9)
open-vm-tools/vmhgfs-fuse/cache.c (+50/-1)
open-vm-tools/vmhgfs-fuse/dir.c (+92/-83)
open-vm-tools/vmhgfs-fuse/file.c (+125/-92)
open-vm-tools/vmhgfs-fuse/filesystem.c (+31/-21)
open-vm-tools/vmhgfs-fuse/fsutil.c (+35/-21)
open-vm-tools/vmhgfs-fuse/link.c (+62/-63)
open-vm-tools/vmhgfs-fuse/vmhgfs_version.h (+4/-4)
open-vm-tools/xferlogs/xferlogs.c (+47/-9)
Conflict in debian/changelog
Conflict in debian/patches/series
Reviewer Review Type Date Requested Status
Rafael David Tinoco (community) Approve
Canonical Server Pending
git-ubuntu developers Pending
Review via email: mp+374901@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Christian Ehrhardt  (paelzer) wrote :
Revision history for this message
Rafael David Tinoco (rafaeldtinoco) wrote :

The way I see this, you're basically uploading the same source package (as focal) to eoan, with a single ubuntu changelog entry and maintainer change. All the delta is caused by the previous upstream version being compared to this new one, correct ? I'm +1 to this. I wonder where is the disco and bionic merges (as present in the PPA).

+1 on my side.

review: Approve
Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Thanks for the review.
Hmm, B+D should be open as well, looking for them ...

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Ah now I know, I had identified issues in them as older GCC needed some minor tweaks.
But those are fixed now, B+D are now open for review as well.

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Thanks for the review, Tags pushed and uploaded

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/ReleaseNotes.md b/ReleaseNotes.md
2index 3f754e0..3912c83 100644
3--- a/ReleaseNotes.md
4+++ b/ReleaseNotes.md
5@@ -1,9 +1,6 @@
6-open-vm-tools 10.3.10 Release Notes
7-=================================
8+**Updated on: 17 OCT 2019**
9
10-**Updated on: 14 MAR 2019**
11-
12-open-vm-tools | 14 MAR 2019 | Build 12406962
13+VMware Tools | 17 OCT 2019 | Build 14773994
14
15 Check for additions and updates to these release notes.
16
17@@ -15,32 +12,33 @@ The release notes cover the following topics:
18 * [What's New](#whatsnew)
19 * [Before You Begin](#beforeyoubegin)
20 * [Internationalization](#i18n)
21+* [Product Support Notice](#productsupport)
22 * [End of Feature Support Notice](#endoffeaturesupport)
23+* [Compatibility Notes](#compatibility)
24 * [Guest Operating System Customization Support](#guestop)
25 * [Interoperability Matrix](#interop)
26-* [Resolved Issues](#resolvedissues)
27 * [Known Issues](#knownissues)
28
29 What's New
30 ----------
31
32-* **Resolved Issues: **There are some issues that are resolved in this release of open-vm-tools which are documented in the [Resolved Issues](#resolvedissues) section of this release notes.
33+* It is highly recommended to upgrade to this version of VMware Tools, if you are using the native service discovery feature in vRealize Operations Manager 8.0, or using the vRealize Operations Service Discovery Management Pack with previous releases of vRealize Operations Manager (7.x or before). For more details, refer [KB 75122](https://kb.vmware.com/s/article/75122).
34
35 Before You Begin
36 ----------------
37
38-**Important note about upgrading to ESXi 5.5 Update 3b or later**
39+**Important note about upgrading to ESXi 6.0 or later**
40
41-Resolution on incompatibility and general guidelines: While upgrading ESXi hosts to ESXi 5.5 Update 3b or ESXi 6.0 Update 1 or later, and using older versions of Horizon View Agent, refer to the knowledge base articles:
42+Resolution on incompatibility and general guidelines: While upgrading ESXi hosts to ESXi 6.0 or later, and using older versions of Horizon View Agent, refer to the knowledge base articles:
43
44-* [Connecting to View desktops with Horizon View Agent 5.3.5 or earlier hosted on ESXi 5.5 Update 3b or later fails with a black screen.](http://kb.vmware.com/kb/2144438)
45-* [Connecting to View desktops with Horizon View Agent 6.0.x or 6.1.x hosted on ESXi 5.5 Update 3b or later fails with a black screen.](http://kb.vmware.com/kb/2144518)
46-* [Connecting to View desktops with Horizon View Agent 6.1.x hosted on ESXi 6.0 Update 1 or later fails with a black screen.](http://kb.vmware.com/kb/2144453)
47+* [Connecting to View desktops with Horizon View Agent 5.3.5 or earlier hosted on ESXi 6.0 or later fails with a black screen.](http://kb.vmware.com/kb/2144438)
48+* [Connecting to View desktops with Horizon View Agent 6.0.x or 6.1.x hosted on ESXi 6.0 or later fails with a black screen.](http://kb.vmware.com/kb/2144518)
49+* [Connecting to View desktops with Horizon View Agent 6.1.x hosted on ESXi 6.0 or later fails with a black screen.](http://kb.vmware.com/kb/2144453)
50
51 Internationalization
52 --------------------
53
54-open-vm-tools 10.3.10 is available in the following languages:
55+open-vm-tools 11.0.1 is available in the following languages:
56
57 * English
58 * French
59@@ -55,9 +53,12 @@ open-vm-tools 10.3.10 is available in the following languages:
60 End of Feature Support Notice
61 -----------------------------
62
63-* Support for Common Agent Framework (CAF) will be removed in the next major release of open-vm-tools.
64-* VMware Tools 10.3.5 freezes feature support for tar tools and OSPs 
65- The tar tools (linux.iso) and OSPs shipped with open-vm-tools 10.3.5 release will continue to be supported. However, releases after VMware Tools 10.3.5 will only include critical and security fixes and no new feature support in these types of open-vm-tools (tar tools and OSP's). It is recommended that customers use open-vm-tools for those operating systems that support open-vm-tools. For more information on different types of open-vm-tools, see [https://blogs.vmware.com/vsphere/2016/02/understanding-the-three-types-of-vm-tools.html](https://blogs.vmware.com/vsphere/2016/02/understanding-the-three-types-of-vm-tools.html)
66+* The tar tools (linux.iso) and OSPs shipped with VMware Tools 10.3.5 release will continue to be supported. However, releases after VMware Tools 10.3.5 will only include critical and security fixes and no new feature support in these types of VMware Tools (tar tools and OSP's). It is recommended that customers use open-vm-tools for those operating systems that support open-vm-tools. For more information on different types of VMware Tools, see [https://blogs.vmware.com/vsphere/2016/02/understanding-the-three-types-of-vm-tools.html](https://blogs.vmware.com/vsphere/2016/02/understanding-the-three-types-of-vm-tools.html)
67+
68+Compatibility Notes
69+-------------------
70+
71+* Starting with VMware Tools version 10.2.0, Perl script-based VMware Tools installation for FreeBSD has been discontinued. FreeBSD systems are supported only through the open-vm-tools packages directly available from FreeBSD package repositories. FreeBSD packages for open-vm-tools 10.1.0 and later are available from FreeBSD package repositories.
72
73 Guest Operating System Customization Support
74 --------------------------------------------
75@@ -72,35 +73,55 @@ The [VMware Product Interoperability Matrix](http://partnerweb.vmware.com/comp_
76 Resolved Issues
77 ---------------
78
79-* **In certain cases, quiesced snapshots on Linux guests do not include backup manifests.**
80+* **Memory leak in vmtoolsd.**
81
82- On a Linux guest, if VMware Tools 10.3.5 gets an error when notifying the ESXi host of a quiesced snapshot's backup manifest file, VMware Tools logs an error and does not notify the ESXi host of the backup manifest file on subsequent quiesced snapshots. As a result, some quiesced snapshots do not include the backup manifest file, that would otherwise be available on the ESXi host. Such snapshots are not identified as quiesced by vSphere clients.
83+ vmtoolsd leaks memory when the vSphere APIs ListGuestAliases and ListGuestMappedAliasers are used.
84
85 This issue is fixed in this release.
86
87 Known Issues
88 ------------
89
90+* **Suspend Guest of Linux VM using any version of open-vm-tools may fail with some versions of SELinux.**
91+
92+ A "Suspend Guest" operation on a Linux guest running any version of open-vm-tools and with SELinux enabled may stall and ultimately fail.
93+
94+ The failure may appear as:
95+   - a "Failed to suspend the virtual machine" message display.
96+   - nothing happened and the "Suspend Guest" button is reactivated. IPv4 connections may be closed.
97+   - a delayed suspend happens but the IPv4 addresses are lost when the VM is resumed.
98+
99+ Even an apparent "stall" which exceeds 30 seconds is an indication of the problem.
100+
101+ For more details, see [KB 74722](https://kb.vmware.com/s/article/74722).
102+
103+ Workaround:
104+
105+ Update the selinux-policy and selinux-policy-targeted packages to the latest version available from the Linux vendor.  If package updates are not available or if the issue persists, then consider the following workaround:
106+
107+ Create an exemption for the vmtools/NetworkManager denied access by using the audit2allow command to generate a local loadable SELinux policy module as outlined in [KB 74722](https://kb.vmware.com/s/article/74722).
108+
109 * **Drag functionality fails to work in Ubuntu.**
110
111 Drag functionality fails to work in Ubuntu 16.04.4 32-bit virtual machine installed using easy install. Also, failure of copy and paste functionality is observed in the same system.
112
113+ Note: This issue is applicable for open-vm-tools running on Workstation and Fusion.
114+
115 Workaround:
116
117 * Add the modprobe.blacklist=vmwgfx linux kernel boot option.
118 * To gain access to larger resolutions, remove svga.guestBackedPrimaryAware = "TRUE" option from the VMX file.
119-
120 * **Shared Folders mount is unavailable on Linux VM.**
121
122 If the **Shared Folders** feature is enabled on a Linux VM while it is powered off, shared folders mount is not available on restart.
123
124- Workaround:
125+ Note: This issue is applicable for open-vm-tools running on Workstation and Fusion.
126
127- If the VM is powered on, disable and enable the **Shared Folders** feature from the interface.
128-
129- For resolving the issue permanently, edit **/etc/fstab** and add an entry to mount the Shared Folders automatically on boot.
130-
131- For example, add the line:
132+ Workaround:
133
134+ If the VM is powered on, disable and enable the **Shared Folders** feature from the interface.
135+ For resolving the issue permanently, edit **/etc/fstab** and add an entry to mount the Shared Folders automatically on boot.
136+ For example, add the line:
137 vmhgfs-fuse   /mnt/hgfs    fuse    defaults,allow\_other    0    0
138
139+
140diff --git a/debian/.gitlab-ci.yml b/debian/.gitlab-ci.yml
141new file mode 100644
142index 0000000..62767c1
143--- /dev/null
144+++ b/debian/.gitlab-ci.yml
145@@ -0,0 +1,14 @@
146+include:
147+ - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml
148+ - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml
149+
150+variables:
151+ RELEASE: 'unstable'
152+ SALSA_CI_DISABLE_APTLY: 0
153+ SALSA_CI_DISABLE_AUTOPKGTEST: 0
154+ SALSA_CI_DISABLE_BLHC: 0
155+ SALSA_CI_DISABLE_LINTIAN: 0
156+ SALSA_CI_DISABLE_PIUPARTS: 0
157+ SALSA_CI_DISABLE_REPROTEST: 0
158+ SALSA_CI_DISABLE_BUILD_PACKAGE_ALL: 0
159+ SALSA_CI_DISABLE_BUILD_PACKAGE_ANY: 0
160diff --git a/debian/changelog b/debian/changelog
161index a78baf1..2d5b6e8 100644
162--- a/debian/changelog
163+++ b/debian/changelog
164@@ -1,3 +1,4 @@
165+<<<<<<< debian/changelog
166 open-vm-tools (2:10.3.10-3ubuntu1) eoan; urgency=medium
167
168 * Fix memory leaks in vix plugin (LP: #1847157)
169@@ -12,6 +13,56 @@ open-vm-tools (2:10.3.10-3build1) eoan; urgency=medium
170 * No-change upload with strops.h and sys/strops.h removed in glibc.
171
172 -- Matthias Klose <doko@ubuntu.com> Thu, 05 Sep 2019 11:05:22 +0000
173+=======
174+open-vm-tools (2:11.0.1-2ubuntu0.19.10.1) eoan; urgency=medium
175+
176+ * Update to latest release v11 (LP: #1844834)
177+
178+ -- Christian Ehrhardt <christian.ehrhardt@canonical.com> Wed, 30 Oct 2019 09:58:25 +0100
179+
180+open-vm-tools (2:11.0.1-2) unstable; urgency=medium
181+
182+ * [76c600f] Fix segfault for fs devices without /
183+ See https://github.com/vmware/open-vm-tools/issues/378 for details.
184+ Thanks to Mo Zhou (Closes: #942692)
185+
186+ -- Bernd Zeimetz <bzed@debian.org> Tue, 22 Oct 2019 15:48:48 +0200
187+
188+open-vm-tools (2:11.0.1-1) unstable; urgency=medium
189+
190+ * [bb36e10] Update upstream source from tag 'upstream/11.0.1'
191+ Update to upstream version '11.0.1'
192+ with Debian dir 60c0d512096774b9a2a7cc9e4e94556b2893ae8a
193+
194+ -- Bernd Zeimetz <bzed@debian.org> Tue, 22 Oct 2019 09:40:50 +0200
195+
196+open-vm-tools (2:11.0.0-2) unstable; urgency=medium
197+
198+ * [4cfe383] Update Vcs-Git/Browser to point to salsa.
199+ * [bc253ad] Remove .travis.yml, add debian/.gitlab-ci.yml
200+ * [c92ca3a] Add add_patch.sh script to add patches from upstream.
201+ * [1d9b491] Add patch to remove deprecated inline functions
202+ * [3e2e307] Rename lintian-override file properly
203+
204+ -- Bernd Zeimetz <bzed@debian.org> Tue, 15 Oct 2019 23:25:24 +0200
205+
206+open-vm-tools (2:11.0.0-1) unstable; urgency=medium
207+
208+ [ goldstar611 ]
209+ * [c138871] Ensure VGAuthService starts after AppArmor
210+ https://gitlab.com/apparmor/apparmor/issues/13
211+
212+ [ Bernd Zeimetz ]
213+ * [28ef841] New upstream version 11.0.0~0
214+ * [f78ed2d] New upstream version 11.0.0
215+ Closes: #940853
216+ * [19efc80] Revert "Revert "Removing libdumbnet-dev.""
217+ This reverts commit 31177fab964d92687501ab81774440a9b8d09e39.
218+ * [bc14a8b] snapshot changelog
219+ * [1c5e9ea] Dropping patches that were picked from upstream
220+
221+ -- Bernd Zeimetz <bzed@debian.org> Mon, 30 Sep 2019 14:37:27 +0200
222+>>>>>>> debian/changelog
223
224 open-vm-tools (2:10.3.10-3) unstable; urgency=medium
225
226diff --git a/debian/control b/debian/control
227index c568dac..6477170 100644
228--- a/debian/control
229+++ b/debian/control
230@@ -5,7 +5,7 @@ Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
231 XSBC-Original-Maintainer: Bernd Zeimetz <bzed@debian.org>
232 Build-Depends:
233 debhelper (>= 11~), doxygen, libcunit1-dev,
234- libdumbnet-dev, libfuse-dev, libgtkmm-3.0-dev, libgtk-3-dev,
235+ libfuse-dev, libgtkmm-3.0-dev, libgtk-3-dev,
236 libicu-dev, libnotify-dev, libpam0g-dev, libprocps-dev, libx11-dev,
237 libxinerama-dev, libxss-dev, libxtst-dev,
238 libmspack-dev,
239@@ -15,8 +15,8 @@ Build-Depends:
240 libdrm-dev,
241 Standards-Version: 4.4.0
242 Homepage: https://github.com/vmware/open-vm-tools
243-Vcs-Git: https://github.com/bzed/pkg-open-vm-tools.git
244-Vcs-Browser: https://github.com/bzed/pkg-open-vm-tools
245+Vcs-Git: https://salsa.debian.org/vmware-packaging-team/pkg-open-vm-tools.git
246+Vcs-Browser: https://salsa.debian.org/vmware-packaging-team/pkg-open-vm-tools
247
248 Package: open-vm-tools
249 Architecture: amd64 i386
250diff --git a/debian/open-vm-tools.lintian b/debian/open-vm-tools.lintian-overrides
251similarity index 100%
252rename from debian/open-vm-tools.lintian
253rename to debian/open-vm-tools.lintian-overrides
254diff --git a/debian/open-vm-tools.vgauth.service b/debian/open-vm-tools.vgauth.service
255index 86f03f2..1b00ca1 100644
256--- a/debian/open-vm-tools.vgauth.service
257+++ b/debian/open-vm-tools.vgauth.service
258@@ -4,6 +4,7 @@ Documentation=http://github.com/vmware/open-vm-tools
259 ConditionVirtualization=vmware
260 DefaultDependencies=no
261 After=systemd-remount-fs.service systemd-tmpfiles-setup.service
262+After=apparmor.service
263 PartOf=open-vm-tools.service
264
265 [Service]
266diff --git a/debian/patches/gcc9-drop-obsolete-G_INLINE_FUNC.patch b/debian/patches/89c0d4445_GitHub-Issue-367.-Remove-references-to-deprecated-G_INLINE_FUNC
267similarity index 60%
268rename from debian/patches/gcc9-drop-obsolete-G_INLINE_FUNC.patch
269rename to debian/patches/89c0d4445_GitHub-Issue-367.-Remove-references-to-deprecated-G_INLINE_FUNC
270index 490f616..a28cf83 100644
271--- a/debian/patches/gcc9-drop-obsolete-G_INLINE_FUNC.patch
272+++ b/debian/patches/89c0d4445_GitHub-Issue-367.-Remove-references-to-deprecated-G_INLINE_FUNC
273@@ -1,16 +1,22 @@
274-Description: G_INLINE_FUNC macro is deprecated, remove it
275- GCC-9 deprecated detection is much harder, and even error disables won't
276- catch deprecated macros. Per [1] this can now be safely replaced
277- with "static inline"
278- [1]: https://developer.gnome.org/glib/stable/glib-Miscellaneous-Macros.html#G-INLINE-FUNC:CAPS
279-Forwarded: yes (https://github.com/vmware/open-vm-tools/issues/367)
280-Author: Christian Ehrhardt <christian.ehrhardt@canonical.com>
281-Bug-Ubuntu: https://bugs.launchpad.net/bugs/1842301
282-Last-Update: 2019-09-03
283+From 89c0d444567eb525e8d083fb564c46d68e96660c Mon Sep 17 00:00:00 2001
284+From: Oliver Kurth <okurth@vmware.com>
285+Date: Mon, 30 Sep 2019 16:24:27 -0700
286+Subject: [PATCH] GitHub Issue #367. Remove references to deprecated
287+ G_INLINE_FUNC.
288
289+G_INLINE_FUNC was a work-around for compilers that didn't support
290+static inline. Change uses of it to static inline.
291+---
292+ open-vm-tools/lib/include/vmware/tools/plugin.h | 2 +-
293+ open-vm-tools/lib/include/vmware/tools/threadPool.h | 8 ++++----
294+ open-vm-tools/lib/include/vmware/tools/utils.h | 9 ---------
295+ 3 files changed, 5 insertions(+), 14 deletions(-)
296+
297+diff --git a/open-vm-tools/lib/include/vmware/tools/plugin.h b/open-vm-tools/lib/include/vmware/tools/plugin.h
298+index f9acc6a29..deefd1f3d 100644
299 --- a/open-vm-tools/lib/include/vmware/tools/plugin.h
300 +++ b/open-vm-tools/lib/include/vmware/tools/plugin.h
301-@@ -281,7 +281,7 @@ typedef struct ToolsAppCtx {
302+@@ -290,7 +290,7 @@ typedef struct ToolsAppCtx {
303 *
304 * @return TRUE if COM is initialized when the function returns.
305 */
306@@ -19,6 +25,8 @@ Last-Update: 2019-09-03
307 ToolsCore_InitializeCOM(ToolsAppCtx *ctx)
308 {
309 if (!ctx->comInitialized) {
310+diff --git a/open-vm-tools/lib/include/vmware/tools/threadPool.h b/open-vm-tools/lib/include/vmware/tools/threadPool.h
311+index 3f2082b3e..5880fbcff 100644
312 --- a/open-vm-tools/lib/include/vmware/tools/threadPool.h
313 +++ b/open-vm-tools/lib/include/vmware/tools/threadPool.h
314 @@ -91,7 +91,7 @@ typedef struct ToolsCorePool {
315@@ -39,7 +47,7 @@ Last-Update: 2019-09-03
316 ToolsCorePool_SubmitTask(ToolsAppCtx *ctx,
317 ToolsCorePoolCb cb,
318 gpointer data,
319-@@ -153,7 +153,7 @@ ToolsCorePool_SubmitTask(ToolsAppCtx *ct
320+@@ -153,7 +153,7 @@ ToolsCorePool_SubmitTask(ToolsAppCtx *ctx,
321 *******************************************************************************
322 */
323
324@@ -48,7 +56,7 @@ Last-Update: 2019-09-03
325 ToolsCorePool_CancelTask(ToolsAppCtx *ctx,
326 guint taskId)
327 {
328-@@ -197,7 +197,7 @@ ToolsCorePool_CancelTask(ToolsAppCtx *ct
329+@@ -197,7 +197,7 @@ ToolsCorePool_CancelTask(ToolsAppCtx *ctx,
330 *******************************************************************************
331 */
332
333@@ -57,3 +65,26 @@ Last-Update: 2019-09-03
334 ToolsCorePool_StartThread(ToolsAppCtx *ctx,
335 const gchar *threadName,
336 ToolsCorePoolCb cb,
337+diff --git a/open-vm-tools/lib/include/vmware/tools/utils.h b/open-vm-tools/lib/include/vmware/tools/utils.h
338+index f65745906..a3292d5c0 100644
339+--- a/open-vm-tools/lib/include/vmware/tools/utils.h
340++++ b/open-vm-tools/lib/include/vmware/tools/utils.h
341+@@ -51,15 +51,6 @@
342+ # include <sys/time.h>
343+ #endif
344+
345+-
346+-/* Work around a glib limitation: it doesn't set G_INLINE_FUNC on Win32. */
347+-#if defined(G_PLATFORM_WIN32)
348+-# if defined(G_INLINE_FUNC)
349+-# undef G_INLINE_FUNC
350+-# endif
351+-# define G_INLINE_FUNC static __inline
352+-#endif
353+-
354+ #ifndef ABS
355+ # define ABS(x) (((x) >= 0) ? (x) : -(x))
356+ #endif
357+--
358+2.23.0
359+
360diff --git a/debian/patches/add_patch.sh b/debian/patches/add_patch.sh
361new file mode 100755
362index 0000000..2085269
363--- /dev/null
364+++ b/debian/patches/add_patch.sh
365@@ -0,0 +1,14 @@
366+#!/bin/bash
367+
368+set -e
369+
370+patchpath=`dirname ${0}`
371+
372+for hash in $@; do
373+ fname=`git log -1 --pretty=format:'%h_%f' ${hash}`
374+ git format-patch --stdout -N -1 ${hash} > "${fname}"
375+ if ! grep -q ${fname} series; then
376+ echo "${fname}" >> series
377+ fi
378+done
379+
380diff --git a/debian/patches/fix-buster-OS-reporting b/debian/patches/fix-buster-OS-reporting
381deleted file mode 100644
382index eb9b215..0000000
383--- a/debian/patches/fix-buster-OS-reporting
384+++ /dev/null
385@@ -1,11 +0,0 @@
386---- a/open-vm-tools/lib/misc/hostinfoPosix.c
387-+++ b/open-vm-tools/lib/misc/hostinfoPosix.c
388-@@ -814,7 +814,7 @@ HostinfoGetOSShortName(char *distro,
389- Str_Strcpy(distroShort, STR_OS_DEBIAN_8, distroShortSize);
390- } else if (strstr(distroLower, "9.")) {
391- Str_Strcpy(distroShort, STR_OS_DEBIAN_9, distroShortSize);
392-- } else if (strstr(distroLower, "10.")) {
393-+ } else if (strstr(distroLower, "10")) {
394- Str_Strcpy(distroShort, STR_OS_DEBIAN_10, distroShortSize);
395- }
396- } else if (StrUtil_StartsWith(distroLower, "enterprise linux") ||
397diff --git a/debian/patches/fix_zfs_fs_detection b/debian/patches/fix_zfs_fs_detection
398new file mode 100644
399index 0000000..4fed620
400--- /dev/null
401+++ b/debian/patches/fix_zfs_fs_detection
402@@ -0,0 +1,13 @@
403+--- a/open-vm-tools/services/plugins/guestInfo/diskInfo.c
404++++ b/open-vm-tools/services/plugins/guestInfo/diskInfo.c
405+@@ -826,8 +826,9 @@ GuestInfoGetDiskDevice(const char *fsNam
406+ /* Not an LVM; check if a basic block device. */
407+ char blockDevPath[PATH_MAX];
408+
409++ char* x = strrchr(fsName, '/');
410+ Str_Snprintf(blockDevPath, PATH_MAX, "%s/%s", LINUX_SYS_BLOCK_DIR,
411+- strrchr(fsName, '/') + 1);
412++ x != NULL ? x+1 : "");
413+ GuestInfoLinuxBlockDevice(blockDevPath, partEntry, 1 /* first and only*/);
414+ }
415+
416diff --git a/debian/patches/gcc9 b/debian/patches/gcc9
417deleted file mode 100644
418index 5499f44..0000000
419--- a/debian/patches/gcc9
420+++ /dev/null
421@@ -1,1212 +0,0 @@
422-commit c68172ef7f2d4f116078e2aba82986a8cab0b16e
423-Author: Oliver Kurth <okurth@vmware.com>
424-Date: Wed Feb 27 14:39:55 2019 -0800
425-
426- GCC 9 caught several misaligned accesses and a format overflow.
427-
428- GCC 9 generated several instances of "Werror=address-of-packed-member"
429- in HGFS Fuse support code and hgfsmounter. There is also one instance of
430- "Werror=format-overflow" generated in util_misc.c.
431-
432- According to stackoverflow discussion -
433- https://stackoverflow.com/questions/8568432/is-gccs-attribute-packed-pragma-pack-unsafe,
434- x86 hardware handles misaligned access and does not exhibit any real
435- issues. However, GCC 9 generates misaligned access warning
436- ("Werror=address-of-packed-member) for all architectures. In case of
437- open-vm-tools build we treat warnings as errors and also we want code
438- to be as portable as possible in general unless there is a reason not
439- to do so.
440-
441---- a/open-vm-tools/hgfsmounter/hgfsmounter.c
442-+++ b/open-vm-tools/hgfsmounter/hgfsmounter.c
443-@@ -1,5 +1,5 @@
444- /*********************************************************
445-- * Copyright (C) 2006-2017 VMware, Inc. All rights reserved.
446-+ * Copyright (C) 2006-2019 VMware, Inc. All rights reserved.
447- *
448- * This program is free software; you can redistribute it and/or modify it
449- * under the terms of the GNU Lesser General Public License as published
450-@@ -514,11 +514,13 @@
451- HgfsMountInfo *mountInfo, // OUT: mount data
452- int *flags) // OUT: mount flags
453- {
454-+ unsigned short fmask = 0;
455- ASSERT(option);
456- ASSERT(mountInfo);
457-
458-- if (ParseMask(option, &mountInfo->fmask)) {
459-- LOG("Setting mount fmask to %o\n", mountInfo->fmask);
460-+ if (ParseMask(option, &fmask)) {
461-+ LOG("Setting mount fmask to %o\n", fmask);
462-+ mountInfo->fmask = fmask;
463- return TRUE;
464- }
465-
466-@@ -548,11 +550,13 @@
467- HgfsMountInfo *mountInfo, // OUT: mount data
468- int *flags) // OUT: mount flags
469- {
470-+ unsigned short dmask = 0;
471- ASSERT(option);
472- ASSERT(mountInfo);
473-
474-- if (ParseMask(option, &mountInfo->dmask)) {
475-- LOG("Setting mount dmask to %o\n", mountInfo->dmask);
476-+ if (ParseMask(option, &dmask)) {
477-+ LOG("Setting mount dmask to %o\n", dmask);
478-+ mountInfo->dmask = dmask;
479- return TRUE;
480- }
481-
482---- a/open-vm-tools/lib/hgfsServer/hgfsServer.c
483-+++ b/open-vm-tools/lib/hgfsServer/hgfsServer.c
484-@@ -1,5 +1,5 @@
485- /*********************************************************
486-- * Copyright (C) 1998-2018 VMware, Inc. All rights reserved.
487-+ * Copyright (C) 1998-2019 VMware, Inc. All rights reserved.
488- *
489- * This program is free software; you can redistribute it and/or modify it
490- * under the terms of the GNU Lesser General Public License as published
491-@@ -6536,11 +6536,13 @@
492- payload = &reply->payload[0];
493- }
494- if (payload) {
495-+ uint32 actualSize = 0;
496- status = HgfsPlatformReadFile(readFd, input->session, offset,
497- requiredSize, payload,
498-- &reply->actualSize);
499-+ &actualSize);
500- if (HGFS_ERROR_SUCCESS == status) {
501- reply->reserved = 0;
502-+ reply->actualSize = actualSize;
503- replyPayloadSize = sizeof *reply;
504-
505- if (readUseDataBuffer) {
506-@@ -6556,11 +6558,13 @@
507- break;
508- }
509- case HGFS_OP_READ: {
510-+ uint32 actualSize = 0;
511- HgfsReplyRead *reply = replyRead;
512-
513- status = HgfsPlatformReadFile(readFd, input->session, offset, requiredSize,
514-- reply->payload, &reply->actualSize);
515-+ reply->payload, &actualSize);
516- if (HGFS_ERROR_SUCCESS == status) {
517-+ reply->actualSize = actualSize;
518- replyPayloadSize = sizeof *reply + reply->actualSize;
519- } else {
520- LOG(4, ("%s: V1 Failed to read-> %d.\n", __FUNCTION__, status));
521---- a/open-vm-tools/lib/misc/util_misc.c
522-+++ b/open-vm-tools/lib/misc/util_misc.c
523-@@ -1,5 +1,5 @@
524- /*********************************************************
525-- * Copyright (C) 1998-2018 VMware, Inc. All rights reserved.
526-+ * Copyright (C) 1998-2019 VMware, Inc. All rights reserved.
527- *
528- * This program is free software; you can redistribute it and/or modify it
529- * under the terms of the GNU Lesser General Public License as published
530-@@ -719,8 +719,8 @@
531- ASSERT(!freeChunk[i]);
532- chunks[i] = expand;
533- if (chunks[i] == NULL) {
534-- Log("%s: Cannot allocate memory to expand \"%s\" in \"%s\".\n",
535-- __FUNCTION__, expand, fileName);
536-+ Log("%s: Cannot allocate memory to expand $ in \"%s\".\n",
537-+ __FUNCTION__, fileName);
538- goto out;
539- }
540- chunkSize[i] = strlen(expand);
541---- a/open-vm-tools/vmhgfs-fuse/dir.c
542-+++ b/open-vm-tools/vmhgfs-fuse/dir.c
543-@@ -1,5 +1,5 @@
544- /*********************************************************
545-- * Copyright (C) 2013 VMware, Inc. All rights reserved.
546-+ * Copyright (C) 2013,2019 VMware, Inc. All rights reserved.
547- *
548- * This program is free software; you can redistribute it and/or modify it
549- * under the terms of the GNU Lesser General Public License as published
550-@@ -54,38 +54,53 @@
551- HgfsOp opUsed, // IN: Op to be used
552- HgfsReq *req) // IN/OUT: Packet to write into
553- {
554-- char *name;
555-- unsigned int *nameLength = NULL;
556- size_t reqSize;
557-- int result;
558-
559- ASSERT(path);
560- ASSERT(req);
561- LOG(4, ("Path = %s \n", path));
562- switch (opUsed) {
563- case HGFS_OP_SEARCH_OPEN_V3: {
564-+ int result;
565- HgfsRequestSearchOpenV3 *requestV3 = HgfsGetRequestPayload(req);
566-
567-- /* We'll use these later. */
568-- name = requestV3->dirName.name;
569-- nameLength = &requestV3->dirName.length;
570- requestV3->dirName.flags = 0;
571- requestV3->dirName.caseType = HGFS_FILE_NAME_CASE_SENSITIVE;
572- requestV3->dirName.fid = HGFS_INVALID_HANDLE;
573- requestV3->reserved = 0;
574- reqSize = sizeof(*requestV3) + HgfsGetRequestHeaderSize();
575-+ /* Convert to CP name. */
576-+ result = CPName_ConvertTo(path,
577-+ HGFS_LARGE_PACKET_MAX - (reqSize - 1),
578-+ requestV3->dirName.name);
579-+ if (result < 0) {
580-+ LOG(4, ("CP conversion failed\n"));
581-+ return -EINVAL;
582-+ }
583-+ LOG(4, ("After conversion = %s\n", requestV3->dirName.name));
584-+ requestV3->dirName.length = result;
585-+ reqSize += result;
586- break;
587- }
588-
589- case HGFS_OP_SEARCH_OPEN: {
590-+ int result;
591- HgfsRequestSearchOpen *request;
592-
593- request = (HgfsRequestSearchOpen *)(HGFS_REQ_PAYLOAD(req));
594-
595-- /* We'll use these later. */
596-- name = request->dirName.name;
597-- nameLength = &request->dirName.length;
598- reqSize = sizeof *request;
599-+ /* Convert to CP name. */
600-+ result = CPName_ConvertTo(path,
601-+ HGFS_LARGE_PACKET_MAX - (reqSize - 1),
602-+ request->dirName.name);
603-+ if (result < 0) {
604-+ LOG(4, ("CP conversion failed\n"));
605-+ return -EINVAL;
606-+ }
607-+ LOG(4, ("After conversion = %s\n", request->dirName.name));
608-+ request->dirName.length = result;
609-+ reqSize += result;
610- break;
611- }
612-
613-@@ -94,21 +109,7 @@
614- return -EPROTO;
615- }
616-
617-- /* Convert to CP name. */
618--
619-- LOG(4, ("After buildPath = %s\n", path));
620-- result = CPName_ConvertTo(path,
621-- HGFS_LARGE_PACKET_MAX - (reqSize - 1),
622-- name);
623-- if (result < 0) {
624-- LOG(4, ("CP conversion failed\n"));
625-- return -EINVAL;
626-- }
627--
628-- LOG(4, ("After conversion = %s\n", name));
629--
630-- *nameLength = (uint32) result;
631-- req->payloadSize = reqSize + result;
632-+ req->payloadSize = reqSize;
633-
634- /* Fill in header here as payloadSize needs to be there. */
635- HgfsPackHeader(req, opUsed);
636-@@ -149,7 +150,6 @@
637- int result;
638- HgfsOp opUsed;
639- HgfsStatus replyStatus;
640-- HgfsHandle *replySearch;
641-
642- ASSERT(path);
643- req = HgfsGetNewRequest();
644-@@ -161,16 +161,6 @@
645-
646- retry:
647- opUsed = hgfsVersionSearchOpen;
648-- if (opUsed == HGFS_OP_SEARCH_OPEN_V3) {
649-- HgfsReplySearchOpenV3 *requestV3 = HgfsGetReplyPayload(req);
650--
651-- replySearch = &requestV3->search;
652--
653-- } else {
654-- HgfsReplySearchOpen *request = (HgfsReplySearchOpen *)HGFS_REQ_PAYLOAD(req);
655--
656-- replySearch = &request->search;
657-- }
658-
659- result = HgfsPackDirOpenRequest(path, opUsed, req);
660- if (result != 0) {
661-@@ -187,8 +177,14 @@
662-
663- switch (result) {
664- case 0:
665-- *handle = *replySearch;
666-- LOG(6, ("Set handle to %u\n", *replySearch));
667-+ if (opUsed == HGFS_OP_SEARCH_OPEN_V3) {
668-+ HgfsReplySearchOpenV3 *requestV3 = HgfsGetReplyPayload(req);
669-+ *handle = requestV3->search;
670-+ } else {
671-+ HgfsReplySearchOpen *request = (HgfsReplySearchOpen *)HGFS_REQ_PAYLOAD(req);
672-+ *handle = request->search;
673-+ }
674-+ LOG(6, ("Set handle to %u\n", *handle));
675- break;
676- case -EPROTO:
677- /* Retry with older version(s). Set globally. */
678-@@ -626,25 +622,30 @@
679- HgfsOp opUsed, // IN: Op to be used.
680- HgfsReq *req) // IN/OUT: Packet to write into
681- {
682-- char *fileName = NULL;
683-- uint32 *fileNameLength;
684- size_t reqSize;
685-- int result;
686-+
687-
688- ASSERT(req);
689-
690- switch (opUsed) {
691- case HGFS_OP_CREATE_DIR_V3: {
692-+ int result;
693- HgfsRequestCreateDirV3 *requestV3 = HgfsGetRequestPayload(req);
694-
695- reqSize = sizeof(*requestV3) + HgfsGetRequestHeaderSize();
696-- /* We'll use these later. */
697-- fileName = requestV3->fileName.name;
698-- fileNameLength = &requestV3->fileName.length;
699- requestV3->fileName.flags = 0;
700- requestV3->fileName.fid = HGFS_INVALID_HANDLE;
701- requestV3->fileName.caseType = HGFS_FILE_NAME_CASE_SENSITIVE;
702--
703-+ /* Convert to CP name. */
704-+ result = CPName_ConvertTo(path,
705-+ HGFS_LARGE_PACKET_MAX - (reqSize - 1),
706-+ requestV3->fileName.name);
707-+ if (result < 0) {
708-+ LOG(4, ("CP conversion failed.\n"));
709-+ return -EINVAL;
710-+ }
711-+ requestV3->fileName.length = result;
712-+ reqSize += result;
713- requestV3->mask = HGFS_CREATE_DIR_MASK;
714-
715- /* Set permissions. */
716-@@ -656,15 +657,23 @@
717- break;
718- }
719- case HGFS_OP_CREATE_DIR_V2: {
720-+ int result;
721- HgfsRequestCreateDirV2 *requestV2;
722-
723- requestV2 = (HgfsRequestCreateDirV2 *)(HGFS_REQ_PAYLOAD(req));
724-
725-- /* We'll use these later. */
726-- fileName = requestV2->fileName.name;
727-- fileNameLength = &requestV2->fileName.length;
728- reqSize = sizeof *requestV2;
729-
730-+ /* Convert to CP name. */
731-+ result = CPName_ConvertTo(path,
732-+ HGFS_LARGE_PACKET_MAX - (reqSize - 1),
733-+ requestV2->fileName.name);
734-+ if (result < 0) {
735-+ LOG(4, ("CP conversion failed.\n"));
736-+ return -EINVAL;
737-+ }
738-+ requestV2->fileName.length = result;
739-+ reqSize += result;
740- requestV2->mask = HGFS_CREATE_DIR_MASK;
741-
742- /* Set permissions. */
743-@@ -675,15 +684,22 @@
744- break;
745- }
746- case HGFS_OP_CREATE_DIR: {
747-+ int result;
748- HgfsRequestCreateDir *request;
749-
750- request = (HgfsRequestCreateDir *)(HGFS_REQ_PAYLOAD(req));
751-
752-- /* We'll use these later. */
753-- fileName = request->fileName.name;
754-- fileNameLength = &request->fileName.length;
755- reqSize = sizeof *request;
756--
757-+ /* Convert to CP name. */
758-+ result = CPName_ConvertTo(path,
759-+ HGFS_LARGE_PACKET_MAX - (reqSize - 1),
760-+ request->fileName.name);
761-+ if (result < 0) {
762-+ LOG(4, ("CP conversion failed.\n"));
763-+ return -EINVAL;
764-+ }
765-+ request->fileName.length = result;
766-+ reqSize += result;
767- /* Set permissions. */
768- request->permissions = (permsMode & S_IRWXU) >> 6;
769- break;
770-@@ -693,18 +709,7 @@
771- return -EPROTO;
772- }
773-
774--
775-- /* Convert to CP name. */
776-- result = CPName_ConvertTo(path,
777-- HGFS_LARGE_PACKET_MAX - (reqSize - 1),
778-- fileName);
779-- if (result < 0) {
780-- LOG(4, ("CP conversion failed.\n"));
781-- return -EINVAL;
782-- }
783--
784-- *fileNameLength = result;
785-- req->payloadSize = reqSize + result;
786-+ req->payloadSize = reqSize;
787-
788- /* Fill in header here as payloadSize needs to be there. */
789- HgfsPackHeader(req, opUsed);
790-@@ -827,8 +832,6 @@
791- HgfsReq *req = NULL;
792- int result = 0;
793- HgfsStatus replyStatus;
794-- char *fileName = NULL;
795-- uint32 *fileNameLength;
796- uint32 reqSize;
797- HgfsOp opUsed;
798- HgfsAttrInfo newAttr = {0};
799-@@ -862,8 +865,17 @@
800-
801- reqSize = sizeof(*request) + HgfsGetRequestHeaderSize();
802- request->hints = 0;
803-- fileName = request->fileName.name;
804-- fileNameLength = &request->fileName.length;
805-+ /* Convert to CP name. */
806-+ result = CPName_ConvertTo(path,
807-+ HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize),
808-+ request->fileName.name);
809-+ if (result < 0) {
810-+ LOG(4, ("CP conversion failed.\n"));
811-+ result = -EINVAL;
812-+ goto out;
813-+ }
814-+ request->fileName.length = result;
815-+ reqSize += result;
816- request->fileName.fid = HGFS_INVALID_HANDLE;
817- request->fileName.flags = 0;
818- request->fileName.caseType = HGFS_FILE_NAME_DEFAULT_CASE;
819-@@ -874,24 +886,21 @@
820-
821- request = (HgfsRequestDelete *)(HGFS_REQ_PAYLOAD(req));
822- /* Fill out the request packet. */
823-- fileName = request->fileName.name;
824-- fileNameLength = &request->fileName.length;
825- reqSize = sizeof *request;
826-+ /* Convert to CP name. */
827-+ result = CPName_ConvertTo(path,
828-+ HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize),
829-+ request->fileName.name);
830-+ if (result < 0) {
831-+ LOG(4, ("CP conversion failed.\n"));
832-+ result = -EINVAL;
833-+ goto out;
834-+ }
835-+ request->fileName.length = result;
836-+ reqSize += result;
837- }
838-
839--
840-- /* Convert to CP name. */
841-- result = CPName_ConvertTo(path,
842-- HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize),
843-- fileName);
844-- if (result < 0) {
845-- LOG(4, ("CP conversion failed.\n"));
846-- result = -EINVAL;
847-- goto out;
848-- }
849--
850-- *fileNameLength = result;
851-- req->payloadSize = reqSize + result;
852-+ req->payloadSize = reqSize;
853-
854- /* Fill in header here as payloadSize needs to be there. */
855- HgfsPackHeader(req, opUsed);
856---- a/open-vm-tools/vmhgfs-fuse/file.c
857-+++ b/open-vm-tools/vmhgfs-fuse/file.c
858-@@ -66,10 +66,7 @@
859- HgfsOp opUsed, // IN: Op to use
860- HgfsReq *req) // IN/OUT: Packet to write into
861- {
862-- char *name;
863-- uint32 *nameLength;
864- size_t reqSize;
865-- int result;
866- int openMode, openFlags;
867-
868- ASSERT(path);
869-@@ -88,14 +85,22 @@
870-
871- switch (opUsed) {
872- case HGFS_OP_OPEN_V3: {
873-+ int result;
874- HgfsRequestOpenV3 *requestV3 = HgfsGetRequestPayload(req);
875-
876- reqSize = sizeof(*requestV3) + HgfsGetRequestHeaderSize();
877-
878-- /* We'll use these later. */
879-- name = requestV3->fileName.name;
880-- nameLength = &requestV3->fileName.length;
881-+ /* Convert to CP name. */
882-+ result = CPName_ConvertTo(path,
883-+ HGFS_LARGE_PACKET_MAX - (reqSize - 1),
884-+ requestV3->fileName.name);
885-+ if (result < 0) {
886-+ LOG(4, ("CP conversion failed.\n"));
887-+ return -EINVAL;
888-+ }
889-
890-+ requestV3->fileName.length = result;
891-+ reqSize += result;
892- /* Linux clients need case-sensitive lookups. */
893- requestV3->fileName.flags = 0;
894- requestV3->fileName.caseType = HGFS_FILE_NAME_CASE_SENSITIVE;
895-@@ -122,15 +127,24 @@
896- }
897-
898- case HGFS_OP_OPEN_V2: {
899-+ int result;
900- HgfsRequestOpenV2 *requestV2;
901-
902- requestV2 = (HgfsRequestOpenV2 *)(HGFS_REQ_PAYLOAD(req));
903-
904-- /* We'll use these later. */
905-- name = requestV2->fileName.name;
906-- nameLength = &requestV2->fileName.length;
907- reqSize = sizeof *requestV2;
908-
909-+ /* Convert to CP name. */
910-+ result = CPName_ConvertTo(path,
911-+ HGFS_LARGE_PACKET_MAX - (reqSize - 1),
912-+ requestV2->fileName.name);
913-+ if (result < 0) {
914-+ LOG(4, ("CP conversion failed.\n"));
915-+ return -EINVAL;
916-+ }
917-+
918-+ requestV2->fileName.length = result;
919-+ reqSize += result;
920- requestV2->mask = mask;
921- requestV2->mode = openMode;
922- requestV2->flags = openFlags;
923-@@ -148,14 +162,23 @@
924- break;
925- }
926- case HGFS_OP_OPEN: {
927-+ int result;
928- HgfsRequestOpen *request;
929-
930- request = (HgfsRequestOpen *)(HGFS_REQ_PAYLOAD(req));
931-- /* We'll use these later. */
932-- name = request->fileName.name;
933-- nameLength = &request->fileName.length;
934- reqSize = sizeof *request;
935-
936-+ /* Convert to CP name. */
937-+ result = CPName_ConvertTo(path,
938-+ HGFS_LARGE_PACKET_MAX - (reqSize - 1),
939-+ request->fileName.name);
940-+ if (result < 0) {
941-+ LOG(4, ("CP conversion failed.\n"));
942-+ return -EINVAL;
943-+ }
944-+
945-+ request->fileName.length = result;
946-+ reqSize += result;
947- request->mode = openMode;
948- request->flags = openFlags;
949-
950-@@ -168,18 +191,7 @@
951- return -EPROTO;
952- }
953-
954--
955-- /* Convert to CP name. */
956-- result = CPName_ConvertTo(path,
957-- HGFS_LARGE_PACKET_MAX - (reqSize - 1),
958-- name);
959-- if (result < 0) {
960-- LOG(4, ("CP conversion failed.\n"));
961-- return -EINVAL;
962-- }
963--
964-- *nameLength = (uint32) result;
965-- req->payloadSize = reqSize + result;
966-+ req->payloadSize = reqSize;
967-
968- /* Fill in header here as payloadSize needs to be there. */
969- HgfsPackHeader(req, opUsed);
970-@@ -915,10 +927,6 @@
971- HgfsRename(const char* from, const char* to)
972- {
973- HgfsReq *req = NULL;
974-- char *oldName;
975-- char *newName;
976-- uint32 *oldNameLength;
977-- uint32 *newNameLength;
978- int result = 0;
979- uint32 reqSize;
980- HgfsOp opUsed;
981-@@ -942,33 +950,41 @@
982- if (opUsed == HGFS_OP_RENAME_V3) {
983- HgfsRequestRenameV3 *requestV3 = HgfsGetRequestPayload(req);
984-
985-- oldName = requestV3->oldName.name;
986-- oldNameLength = &requestV3->oldName.length;
987- requestV3->hints = 0;
988- requestV3->oldName.flags = 0;
989- requestV3->oldName.fid = HGFS_INVALID_HANDLE;
990- requestV3->oldName.caseType = HGFS_FILE_NAME_CASE_SENSITIVE;
991- requestV3->reserved = 0;
992- reqSize = sizeof(*requestV3) + HgfsGetRequestHeaderSize();
993-+ /* Convert old name to CP format. */
994-+ result = CPName_ConvertTo(from,
995-+ HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize),
996-+ requestV3->oldName.name);
997-+ if (result < 0) {
998-+ LOG(4, ("oldName CP conversion failed\n"));
999-+ result = -EINVAL;
1000-+ goto out;
1001-+ }
1002-+
1003-+ requestV3->oldName.length = result;
1004-+ reqSize += result;
1005- } else {
1006- HgfsRequestRename *request = (HgfsRequestRename *)HGFS_REQ_PAYLOAD(req);
1007-
1008-- oldName = request->oldName.name;
1009-- oldNameLength = &request->oldName.length;
1010- reqSize = sizeof *request;
1011-- }
1012-- /* Convert old name to CP format. */
1013-- result = CPName_ConvertTo(from,
1014-- HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize),
1015-- oldName);
1016-- if (result < 0) {
1017-- LOG(4, ("oldName CP conversion failed\n"));
1018-- result = -EINVAL;
1019-- goto out;
1020-- }
1021-+ /* Convert old name to CP format. */
1022-+ result = CPName_ConvertTo(from,
1023-+ HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize),
1024-+ request->oldName.name);
1025-+ if (result < 0) {
1026-+ LOG(4, ("oldName CP conversion failed\n"));
1027-+ result = -EINVAL;
1028-+ goto out;
1029-+ }
1030-
1031-- *oldNameLength = result;
1032-- reqSize += result;
1033-+ request->oldName.length = result;
1034-+ reqSize += result;
1035-+ }
1036-
1037- /*
1038- * Build full new name to send to server.
1039-@@ -983,8 +999,20 @@
1040-
1041- newNameP = (HgfsFileNameV3 *)((char *)&requestV3->oldName +
1042- sizeof requestV3->oldName + result);
1043-- newName = newNameP->name;
1044-- newNameLength = &newNameP->length;
1045-+
1046-+ LOG(6, ("New name: \"%s\"\n", newNameP->name));
1047-+
1048-+ /* Convert new name to CP format. */
1049-+ result = CPName_ConvertTo(to,
1050-+ HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize) - result,
1051-+ newNameP->name);
1052-+ if (result < 0) {
1053-+ LOG(4, ("newName CP conversion failed\n"));
1054-+ result = -EINVAL;
1055-+ goto out;
1056-+ }
1057-+ newNameP->length = result;
1058-+ reqSize += result;
1059- newNameP->flags = 0;
1060- newNameP->fid = HGFS_INVALID_HANDLE;
1061- newNameP->caseType = HGFS_FILE_NAME_CASE_SENSITIVE;
1062-@@ -993,24 +1021,22 @@
1063- HgfsFileName *newNameP;
1064- newNameP = (HgfsFileName *)((char *)&request->oldName +
1065- sizeof request->oldName + result);
1066-- newName = newNameP->name;
1067-- newNameLength = &newNameP->length;
1068-- }
1069-
1070-- LOG(6, ("New name: \"%s\"\n", newName));
1071-+ LOG(6, ("New name: \"%s\"\n", newNameP->name));
1072-
1073-- /* Convert new name to CP format. */
1074-- result = CPName_ConvertTo(to,
1075-- HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize) - result,
1076-- newName);
1077-- if (result < 0) {
1078-- LOG(4, ("newName CP conversion failed\n"));
1079-- result = -EINVAL;
1080-- goto out;
1081-+ /* Convert new name to CP format. */
1082-+ result = CPName_ConvertTo(to,
1083-+ HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize) - result,
1084-+ newNameP->name);
1085-+ if (result < 0) {
1086-+ LOG(4, ("newName CP conversion failed\n"));
1087-+ result = -EINVAL;
1088-+ goto out;
1089-+ }
1090-+ newNameP->length = result;
1091-+ reqSize += result;
1092- }
1093-
1094-- *newNameLength = result;
1095-- reqSize += result;
1096- req->payloadSize = reqSize;
1097-
1098- /* Fill in header here as payloadSize needs to be there. */
1099-@@ -1109,21 +1135,17 @@
1100- {
1101- HgfsAttrV2 *attrV2;
1102- HgfsAttr *attrV1;
1103-- HgfsAttrHint *hints;
1104- HgfsAttrChanges *update;
1105-- char *fileName = NULL;
1106-- uint32 *fileNameLength = NULL;
1107- size_t reqBufferSize;
1108- size_t reqSize;
1109-- int result = 0;
1110- ASSERT(req);
1111-
1112- switch (opUsed) {
1113- case HGFS_OP_SETATTR_V3: {
1114-+ int result;
1115- HgfsRequestSetattrV3 *requestV3 = HgfsGetRequestPayload(req);
1116-
1117- attrV2 = &requestV3->attr;
1118-- hints = &requestV3->hints;
1119-
1120- /*
1121- * Clear attributes, mask, and hints before touching them.
1122-@@ -1131,7 +1153,7 @@
1123- * make sure to zero them all here.
1124- */
1125- memset(attrV2, 0, sizeof *attrV2);
1126-- memset(hints, 0, sizeof *hints);
1127-+ requestV3->hints = 0;
1128-
1129- /*
1130- * When possible, issue a setattr using an existing handle. This will
1131-@@ -1143,14 +1165,21 @@
1132- * the times also requires write permissions on Windows, so we require it
1133- * here too. Otherwise, any handle will do.
1134- */
1135-- fileName = requestV3->fileName.name;
1136-- fileNameLength = &requestV3->fileName.length;
1137- requestV3->fileName.caseType = HGFS_FILE_NAME_CASE_SENSITIVE;
1138- requestV3->fileName.fid = HGFS_INVALID_HANDLE;
1139- requestV3->fileName.flags = 0;
1140- requestV3->reserved = 0;
1141- reqSize = sizeof(*requestV3) + HgfsGetRequestHeaderSize();
1142- reqBufferSize = HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize);
1143-+ result = CPName_ConvertTo(path,
1144-+ reqBufferSize,
1145-+ requestV3->fileName.name);
1146-+ if (result < 0) {
1147-+ LOG(4, ("CP conversion failed.\n"));
1148-+ return -EINVAL;
1149-+ }
1150-+ requestV3->fileName.length = result;
1151-+ reqSize += result;
1152-
1153- attrV2->mask = attr->mask;
1154- if (attr->mask & (HGFS_ATTR_VALID_SPECIAL_PERMS |
1155-@@ -1173,22 +1202,22 @@
1156- }
1157- if (attr->mask & HGFS_ATTR_VALID_ACCESS_TIME) {
1158- attrV2->accessTime = attr->accessTime;
1159-- *hints |= HGFS_ATTR_HINT_SET_ACCESS_TIME;
1160-+ requestV3->hints |= HGFS_ATTR_HINT_SET_ACCESS_TIME;
1161- }
1162- if (attr->mask & HGFS_ATTR_VALID_WRITE_TIME) {
1163- attrV2->writeTime = attr->writeTime;
1164-- *hints |= HGFS_ATTR_HINT_SET_WRITE_TIME;
1165-+ requestV3->hints |= HGFS_ATTR_HINT_SET_WRITE_TIME;
1166- }
1167-
1168- break;
1169- }
1170- case HGFS_OP_SETATTR_V2: {
1171-+ int result;
1172- HgfsRequestSetattrV2 *requestV2;
1173-
1174- requestV2 = (HgfsRequestSetattrV2 *)(HGFS_REQ_PAYLOAD(req));
1175-
1176- attrV2 = &requestV2->attr;
1177-- hints = &requestV2->hints;
1178-
1179- /*
1180- * Clear attributes, mask, and hints before touching them.
1181-@@ -1196,13 +1225,19 @@
1182- * make sure to zero them all here.
1183- */
1184- memset(attrV2, 0, sizeof *attrV2);
1185-- memset(hints, 0, sizeof *hints);
1186--
1187-- fileName = requestV2->fileName.name;
1188-- fileNameLength = &requestV2->fileName.length;
1189-+ requestV2->hints = 0;
1190-
1191- reqSize = sizeof *requestV2;
1192- reqBufferSize = HGFS_NAME_BUFFER_SIZE(HGFS_LARGE_PACKET_MAX, requestV2);
1193-+ result = CPName_ConvertTo(path,
1194-+ reqBufferSize,
1195-+ requestV2->fileName.name);
1196-+ if (result < 0) {
1197-+ LOG(4, ("CP conversion failed.\n"));
1198-+ return -EINVAL;
1199-+ }
1200-+ requestV2->fileName.length = result;
1201-+ reqSize += result;
1202-
1203- if (attr->mask & (HGFS_ATTR_VALID_SPECIAL_PERMS |
1204- HGFS_ATTR_VALID_OWNER_PERMS |
1205-@@ -1224,16 +1259,17 @@
1206- }
1207- if (attr->mask & HGFS_ATTR_VALID_ACCESS_TIME) {
1208- attrV2->accessTime = attr->accessTime;
1209-- *hints |= HGFS_ATTR_HINT_SET_ACCESS_TIME;
1210-+ requestV2->hints |= HGFS_ATTR_HINT_SET_ACCESS_TIME;
1211- }
1212- if (attr->mask & HGFS_ATTR_VALID_WRITE_TIME) {
1213- attrV2->writeTime = attr->writeTime;
1214-- *hints |= HGFS_ATTR_HINT_SET_WRITE_TIME;
1215-+ requestV2->hints |= HGFS_ATTR_HINT_SET_WRITE_TIME;
1216- }
1217-
1218- break;
1219- }
1220- case HGFS_OP_SETATTR: {
1221-+ int result;
1222- HgfsRequestSetattr *request;
1223-
1224- request = (HgfsRequestSetattr *)(HGFS_REQ_PAYLOAD(req));
1225-@@ -1241,11 +1277,17 @@
1226- attrV1 = &request->attr;
1227- update = &request->update;
1228-
1229-- /* We'll use these later. */
1230-- fileName = request->fileName.name;
1231-- fileNameLength = &request->fileName.length;
1232- reqSize = sizeof *request;
1233- reqBufferSize = HGFS_NAME_BUFFER_SIZE(HGFS_LARGE_PACKET_MAX, request);
1234-+ result = CPName_ConvertTo(path,
1235-+ reqBufferSize,
1236-+ request->fileName.name);
1237-+ if (result < 0) {
1238-+ LOG(4, ("CP conversion failed.\n"));
1239-+ return -EINVAL;
1240-+ }
1241-+ request->fileName.length = result;
1242-+ reqSize += result;
1243-
1244- /*
1245- * Clear attributes before touching them.
1246-@@ -1284,16 +1326,7 @@
1247- return -EPROTO;
1248- }
1249-
1250-- result = CPName_ConvertTo(path,
1251-- reqBufferSize,
1252-- fileName);
1253-- if (result < 0) {
1254-- LOG(4, ("CP conversion failed.\n"));
1255-- return -EINVAL;
1256-- }
1257--
1258-- *fileNameLength = result;
1259-- req->payloadSize = reqSize + result;
1260-+ req->payloadSize = reqSize;
1261-
1262- /* Fill in header here as payloadSize needs to be there. */
1263- HgfsPackHeader(req, opUsed);
1264---- a/open-vm-tools/vmhgfs-fuse/filesystem.c
1265-+++ b/open-vm-tools/vmhgfs-fuse/filesystem.c
1266-@@ -1,5 +1,5 @@
1267- /*********************************************************
1268-- * Copyright (C) 2013 VMware, Inc. All rights reserved.
1269-+ * Copyright (C) 2013,2019 VMware, Inc. All rights reserved.
1270- *
1271- * This program is free software; you can redistribute it and/or modify it
1272- * under the terms of the GNU Lesser General Public License as published
1273-@@ -123,36 +123,50 @@
1274- HgfsOp opUsed, // IN: Op to be used.
1275- HgfsReq *req) // IN/OUT: Packet to write into
1276- {
1277-- char *name;
1278-- uint32 *nameLength;
1279- size_t requestSize;
1280-- int result;
1281-+
1282-
1283- ASSERT(req);
1284-
1285- switch (opUsed) {
1286- case HGFS_OP_QUERY_VOLUME_INFO_V3: {
1287-+ int result;
1288- HgfsRequestQueryVolumeV3 *requestV3 = HgfsGetRequestPayload(req);
1289-
1290-- /* We'll use these later. */
1291-- name = requestV3->fileName.name;
1292-- nameLength = &requestV3->fileName.length;
1293- requestV3->fileName.flags = 0;
1294- requestV3->fileName.fid = HGFS_INVALID_HANDLE;
1295- requestV3->fileName.caseType = HGFS_FILE_NAME_CASE_SENSITIVE;
1296- requestV3->reserved = 0;
1297- requestSize = sizeof(*requestV3) + HgfsGetRequestHeaderSize();
1298-+ /* Convert to CP name. */
1299-+ result = CPName_ConvertTo(path,
1300-+ HGFS_LARGE_PACKET_MAX - (requestSize - 1),
1301-+ requestV3->fileName.name);
1302-+ if (result < 0) {
1303-+ LOG(4, ("CP conversion failed.\n"));
1304-+ return -EINVAL;
1305-+ }
1306-+ requestV3->fileName.length = result;
1307-+ requestSize += result;
1308- break;
1309- }
1310- case HGFS_OP_QUERY_VOLUME_INFO: {
1311-+ int result;
1312- HgfsRequestQueryVolume *request;
1313-
1314- request = (HgfsRequestQueryVolume *)(HGFS_REQ_PAYLOAD(req));
1315-
1316-- /* We'll use these later. */
1317-- name = request->fileName.name;
1318-- nameLength = &request->fileName.length;
1319- requestSize = sizeof *request;
1320-+ /* Convert to CP name. */
1321-+ result = CPName_ConvertTo(path,
1322-+ HGFS_LARGE_PACKET_MAX - (requestSize - 1),
1323-+ request->fileName.name);
1324-+ if (result < 0) {
1325-+ LOG(4, ("CP conversion failed.\n"));
1326-+ return -EINVAL;
1327-+ }
1328-+ request->fileName.length = result;
1329-+ requestSize += result;
1330- break;
1331- }
1332- default:
1333-@@ -160,17 +174,7 @@
1334- return -EPROTO;
1335- }
1336-
1337-- /* Convert to CP name. */
1338-- result = CPName_ConvertTo(path,
1339-- HGFS_LARGE_PACKET_MAX - (requestSize - 1),
1340-- name);
1341-- if (result < 0) {
1342-- LOG(4, ("CP conversion failed.\n"));
1343-- return -EINVAL;
1344-- }
1345--
1346-- *nameLength = (uint32) result;
1347-- req->payloadSize = requestSize + result;
1348-+ req->payloadSize = requestSize;
1349-
1350- /* Fill in header here as payloadSize needs to be there. */
1351- HgfsPackHeader(req, opUsed);
1352---- a/open-vm-tools/vmhgfs-fuse/fsutil.c
1353-+++ b/open-vm-tools/vmhgfs-fuse/fsutil.c
1354-@@ -1,5 +1,5 @@
1355- /*********************************************************
1356-- * Copyright (C) 2013 VMware, Inc. All rights reserved.
1357-+ * Copyright (C) 2013,2019 VMware, Inc. All rights reserved.
1358- *
1359- * This program is free software; you can redistribute it and/or modify it
1360- * under the terms of the GNU Lesser General Public License as published
1361-@@ -189,8 +189,6 @@
1362- size_t reqBufferSize;
1363- size_t reqSize;
1364- int result = 0;
1365-- char *fileName = NULL;
1366-- uint32 *fileNameLength = NULL;
1367- ASSERT(attr);
1368- ASSERT(req);
1369- ASSERT(path);
1370-@@ -204,8 +202,6 @@
1371-
1372- /* Fill out the request packet. */
1373- requestV3->hints = 0;
1374-- fileName = requestV3->fileName.name;
1375-- fileNameLength = &requestV3->fileName.length;
1376- requestV3->fileName.flags = 0;
1377- requestV3->fileName.fid = HGFS_INVALID_HANDLE;
1378- requestV3->fileName.caseType = HGFS_FILE_NAME_CASE_SENSITIVE;
1379-@@ -213,6 +209,19 @@
1380- requestV3->reserved = 0;
1381- reqSize = sizeof(*requestV3) + HgfsGetRequestHeaderSize();
1382- reqBufferSize = HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize);
1383-+ if (requestV3->fileName.name != NULL) {
1384-+ /* Convert to CP name. */
1385-+ result = CPName_ConvertTo(path,
1386-+ reqBufferSize,
1387-+ requestV3->fileName.name);
1388-+ LOG(8, ("Converted path %s\n", requestV3->fileName.name));
1389-+ if (result < 0) {
1390-+ LOG(8, ("CP conversion failed.\n"));
1391-+ result = -EINVAL;
1392-+ goto out;
1393-+ }
1394-+ requestV3->fileName.length = result;
1395-+ }
1396- break;
1397- }
1398-
1399-@@ -223,20 +232,42 @@
1400-
1401- requestV2 = (HgfsRequestGetattrV2 *)(HGFS_REQ_PAYLOAD(req));
1402- requestV2->hints = 0;
1403-- fileName = requestV2->fileName.name;
1404-- fileNameLength = &requestV2->fileName.length;
1405- reqSize = sizeof *requestV2;
1406- reqBufferSize = HGFS_NAME_BUFFER_SIZE(HGFS_LARGE_PACKET_MAX, requestV2);
1407-+ if (requestV2->fileName.name != NULL) {
1408-+ /* Convert to CP name. */
1409-+ result = CPName_ConvertTo(path,
1410-+ reqBufferSize,
1411-+ requestV2->fileName.name);
1412-+ LOG(8, ("Converted path %s\n", requestV2->fileName.name));
1413-+ if (result < 0) {
1414-+ LOG(8, ("CP conversion failed.\n"));
1415-+ result = -EINVAL;
1416-+ goto out;
1417-+ }
1418-+ requestV2->fileName.length = result;
1419-+ }
1420- break;
1421- }
1422-
1423- case HGFS_OP_GETATTR: {
1424- HgfsRequestGetattr *requestV1;
1425- requestV1 = (HgfsRequestGetattr *)(HGFS_REQ_PAYLOAD(req));
1426-- fileName = requestV1->fileName.name;
1427-- fileNameLength = &requestV1->fileName.length;
1428- reqSize = sizeof *requestV1;
1429- reqBufferSize = HGFS_NAME_BUFFER_SIZE(HGFS_LARGE_PACKET_MAX, requestV1);
1430-+ if (requestV1->fileName.name != NULL) {
1431-+ /* Convert to CP name. */
1432-+ result = CPName_ConvertTo(path,
1433-+ reqBufferSize,
1434-+ requestV1->fileName.name);
1435-+ LOG(8, ("Converted path %s\n", requestV1->fileName.name));
1436-+ if (result < 0) {
1437-+ LOG(8, ("CP conversion failed.\n"));
1438-+ result = -EINVAL;
1439-+ goto out;
1440-+ }
1441-+ requestV1->fileName.length = result;
1442-+ }
1443- break;
1444- }
1445-
1446-@@ -246,20 +277,6 @@
1447- goto out;
1448- }
1449-
1450-- if (fileName != NULL) {
1451-- /* Convert to CP name. */
1452-- result = CPName_ConvertTo(path,
1453-- reqBufferSize,
1454-- fileName);
1455-- LOG(8, ("Converted path %s\n", fileName));
1456-- if (result < 0) {
1457-- LOG(8, ("CP conversion failed.\n"));
1458-- result = -EINVAL;
1459-- goto out;
1460-- }
1461-- *fileNameLength = result;
1462-- }
1463--
1464- req->payloadSize = reqSize + result;
1465-
1466- /* Fill in header here as payloadSize needs to be there. */
1467---- a/open-vm-tools/vmhgfs-fuse/link.c
1468-+++ b/open-vm-tools/vmhgfs-fuse/link.c
1469-@@ -1,5 +1,5 @@
1470- /*********************************************************
1471-- * Copyright (C) 2013 VMware, Inc. All rights reserved.
1472-+ * Copyright (C) 2013,2019 VMware, Inc. All rights reserved.
1473- *
1474- * This program is free software; you can redistribute it and/or modify it
1475- * under the terms of the GNU Lesser General Public License as published
1476-@@ -51,36 +51,81 @@
1477- {
1478- HgfsRequestSymlinkCreateV3 *requestV3 = NULL;
1479- HgfsRequestSymlinkCreate *request = NULL;
1480-- char *symlinkName;
1481-- uint32 *symlinkNameLength;
1482-- char *targetName;
1483-- uint32 *targetNameLength;
1484- size_t targetNameBytes;
1485--
1486- size_t requestSize;
1487-- int result;
1488-+
1489-+ targetNameBytes = strlen(symname) + 1;
1490-
1491- switch (opUsed) {
1492- case HGFS_OP_CREATE_SYMLINK_V3: {
1493-+ int result;
1494-+ HgfsFileNameV3 *fileNameP;
1495- requestV3 = HgfsGetRequestPayload(req);
1496-
1497-- /* We'll use these later. */
1498-- symlinkName = requestV3->symlinkName.name;
1499-- symlinkNameLength = &requestV3->symlinkName.length;
1500- requestV3->symlinkName.flags = 0;
1501- requestV3->symlinkName.fid = HGFS_INVALID_HANDLE;
1502- requestV3->symlinkName.caseType = HGFS_FILE_NAME_CASE_SENSITIVE;
1503- requestV3->reserved = 0;
1504- requestSize = sizeof(*requestV3) + HgfsGetRequestHeaderSize();
1505-+ /* Convert symlink name to CP format. */
1506-+ result = CPName_ConvertTo(symlink,
1507-+ HGFS_LARGE_PACKET_MAX - (requestSize - 1),
1508-+ requestV3->symlinkName.name);
1509-+ if (result < 0) {
1510-+ LOG(4, ("SymlinkName CP conversion failed.\n"));
1511-+ return -EINVAL;
1512-+ }
1513-+ requestV3->symlinkName.length = result;
1514-+ requestSize += result;
1515-+
1516-+ /* Copy target name into request packet. */
1517-+ if (targetNameBytes > HGFS_LARGE_PACKET_MAX - (requestSize - 1)) {
1518-+ LOG(4, ("Target name is too long.\n"));
1519-+ return -EINVAL;
1520-+ }
1521-+
1522-+ fileNameP = (HgfsFileNameV3 *)((char *)&requestV3->symlinkName +
1523-+ sizeof requestV3->symlinkName + result);
1524-+ memcpy(fileNameP->name, symname, targetNameBytes);
1525-+ LOG(6, ("Target name: \"%s\"\n", fileNameP->name));
1526-+ /* Convert target name to CPName-lite format. */
1527-+ CPNameLite_ConvertTo(fileNameP->name, targetNameBytes - 1, '/');
1528-+ fileNameP->length = targetNameBytes - 1;
1529-+ fileNameP->flags = 0;
1530-+ fileNameP->fid = HGFS_INVALID_HANDLE;
1531-+ fileNameP->caseType = HGFS_FILE_NAME_CASE_SENSITIVE;
1532- break;
1533- }
1534- case HGFS_OP_CREATE_SYMLINK: {
1535-+ int result;
1536-+ HgfsFileName *fileNameP;
1537- request = (HgfsRequestSymlinkCreate *)(HGFS_REQ_PAYLOAD(req));
1538-
1539-- /* We'll use these later. */
1540-- symlinkName = request->symlinkName.name;
1541-- symlinkNameLength = &request->symlinkName.length;
1542- requestSize = sizeof *request;
1543-+ /* Convert symlink name to CP format. */
1544-+ result = CPName_ConvertTo(symlink,
1545-+ HGFS_LARGE_PACKET_MAX - (requestSize - 1),
1546-+ request->symlinkName.name);
1547-+ if (result < 0) {
1548-+ LOG(4, ("SymlinkName CP conversion failed.\n"));
1549-+ return -EINVAL;
1550-+ }
1551-+ request->symlinkName.length = result;
1552-+ requestSize += result;
1553-+
1554-+ /* Copy target name into request packet. */
1555-+ if (targetNameBytes > HGFS_LARGE_PACKET_MAX - (requestSize - 1)) {
1556-+ LOG(4, ("Target name is too long.\n"));
1557-+ return -EINVAL;
1558-+ }
1559-+
1560-+ fileNameP = (HgfsFileName *)((char *)&request->symlinkName +
1561-+ sizeof request->symlinkName + result);
1562-+ memcpy(fileNameP->name, symname, targetNameBytes);
1563-+ LOG(6, ("Target name: \"%s\"\n", fileNameP->name));
1564-+ /* Convert target name to CPName-lite format. */
1565-+ CPNameLite_ConvertTo(fileNameP->name, targetNameBytes - 1, '/');
1566-+ fileNameP->length = targetNameBytes - 1;
1567- break;
1568- }
1569- default:
1570-@@ -88,59 +133,13 @@
1571- return -EPROTO;
1572- }
1573-
1574--
1575-- /* Convert symlink name to CP format. */
1576-- result = CPName_ConvertTo(symlink,
1577-- HGFS_LARGE_PACKET_MAX - (requestSize - 1),
1578-- symlinkName);
1579-- if (result < 0) {
1580-- LOG(4, ("SymlinkName CP conversion failed.\n"));
1581-- return -EINVAL;
1582-- }
1583--
1584-- *symlinkNameLength = result;
1585-- req->payloadSize = requestSize + result;
1586-+ req->payloadSize = requestSize;
1587-
1588- /*
1589-- * Note the different buffer length. This is because HgfsRequestSymlink
1590-- * contains two filenames, and once we place the first into the packet we
1591-- * must account for it when determining the amount of buffer available for
1592-- * the second.
1593-- *
1594-- * Also note that targetNameBytes accounts for the NUL character. Once
1595-- * we've converted it to CP name, it won't be NUL-terminated and the length
1596-- * of the string in the packet itself won't account for it.
1597-+ * targetNameBytes accounts for the NUL character. Once we've converted
1598-+ * it to CP name, it won't be NUL-terminated and the length of the string
1599-+ * in the packet itself won't account for it.
1600- */
1601-- if (opUsed == HGFS_OP_CREATE_SYMLINK_V3) {
1602-- HgfsFileNameV3 *fileNameP;
1603-- fileNameP = (HgfsFileNameV3 *)((char *)&requestV3->symlinkName +
1604-- sizeof requestV3->symlinkName + result);
1605-- targetName = fileNameP->name;
1606-- targetNameLength = &fileNameP->length;
1607-- fileNameP->flags = 0;
1608-- fileNameP->fid = HGFS_INVALID_HANDLE;
1609-- fileNameP->caseType = HGFS_FILE_NAME_CASE_SENSITIVE;
1610-- } else {
1611-- HgfsFileName *fileNameP;
1612-- fileNameP = (HgfsFileName *)((char *)&request->symlinkName +
1613-- sizeof request->symlinkName + result);
1614-- targetName = fileNameP->name;
1615-- targetNameLength = &fileNameP->length;
1616-- }
1617-- targetNameBytes = strlen(symname) + 1;
1618--
1619-- /* Copy target name into request packet. */
1620-- if (targetNameBytes > HGFS_LARGE_PACKET_MAX - (requestSize - 1)) {
1621-- LOG(4, ("Target name is too long.\n"));
1622-- return -EINVAL;
1623-- }
1624-- memcpy(targetName, symname, targetNameBytes);
1625-- LOG(6, ("Target name: \"%s\"\n", targetName));
1626--
1627-- /* Convert target name to CPName-lite format. */
1628-- CPNameLite_ConvertTo(targetName, targetNameBytes - 1, '/');
1629--
1630-- *targetNameLength = targetNameBytes - 1;
1631- req->payloadSize += targetNameBytes - 1;
1632-
1633- /* Fill in header here as payloadSize needs to be there. */
1634diff --git a/debian/patches/gcc9-GStaticRecMutex.patch b/debian/patches/gcc9-GStaticRecMutex.patch
1635deleted file mode 100644
1636index 09224a3..0000000
1637--- a/debian/patches/gcc9-GStaticRecMutex.patch
1638+++ /dev/null
1639@@ -1,55 +0,0 @@
1640-Author: Christian Ehrhardt <christian.ehrhardt@canonical.com>
1641-Original-Author: Oliver Kurth <okurth@vmware.com>
1642-Origin: backport, https://github.com/vmware/open-vm-tools/commit/19ca3e36
1643-X-Backport-Note: only took the GStaticMutex changes from the mcuh bigger rework
1644-Bug-Ubuntu: https://bugs.launchpad.net/bugs/1842301
1645-Applied-Upstream: 11.0
1646-Last-Update: 2019-09-03
1647-
1648---- a/open-vm-tools/libvmtools/vmtoolsLog.c
1649-+++ b/open-vm-tools/libvmtools/vmtoolsLog.c
1650-@@ -155,7 +155,7 @@ static LogHandler *gErrorData;
1651- static LogHandler *gErrorSyslog;
1652- static GPtrArray *gDomains = NULL;
1653- static gboolean gLogInitialized = FALSE;
1654--static GStaticRecMutex gLogStateMutex = G_STATIC_REC_MUTEX_INIT;
1655-+static GRecMutex gLogStateMutex;
1656- static gboolean gLoggingStopped = FALSE;
1657- static gboolean gLogIOSuspended = FALSE;
1658-
1659-@@ -1046,7 +1046,7 @@ VMTools_ConfigLogToStdio(const gchar *do
1660-
1661- if (!gLogInitialized) {
1662- gLogInitialized = TRUE;
1663-- g_static_rec_mutex_init(&gLogStateMutex);
1664-+ g_rec_mutex_init(&gLogStateMutex);
1665- }
1666-
1667- gLogEnabled = TRUE;
1668-@@ -1157,7 +1157,7 @@ VMTools_ConfigLogging(const gchar *defau
1669- gLogEnabled |= force;
1670- if (!gLogInitialized) {
1671- gLogInitialized = TRUE;
1672-- g_static_rec_mutex_init(&gLogStateMutex);
1673-+ g_rec_mutex_init(&gLogStateMutex);
1674- }
1675-
1676- gMaxCacheEntries = g_key_file_get_integer(cfg, LOGGING_GROUP,
1677-@@ -1323,7 +1323,7 @@ VMToolsLogWrapper(GLogLevelFlags level,
1678- void
1679- VMTools_AcquireLogStateLock(void)
1680- {
1681-- g_static_rec_mutex_lock(&gLogStateMutex);
1682-+ g_rec_mutex_lock(&gLogStateMutex);
1683- }
1684-
1685-
1686-@@ -1334,7 +1334,7 @@ VMTools_AcquireLogStateLock(void)
1687- void
1688- VMTools_ReleaseLogStateLock(void)
1689- {
1690-- g_static_rec_mutex_unlock(&gLogStateMutex);
1691-+ g_rec_mutex_unlock(&gLogStateMutex);
1692- }
1693-
1694-
1695diff --git a/debian/patches/gcc9-Remove-GLib-2.32-deprecated-APIs-from-tools.patch b/debian/patches/gcc9-Remove-GLib-2.32-deprecated-APIs-from-tools.patch
1696deleted file mode 100644
1697index cacaeb0..0000000
1698--- a/debian/patches/gcc9-Remove-GLib-2.32-deprecated-APIs-from-tools.patch
1699+++ /dev/null
1700@@ -1,827 +0,0 @@
1701-From a7c141fc5278146b86c71502f60767962b752af7 Mon Sep 17 00:00:00 2001
1702-From: Oliver Kurth <okurth@vmware.com>
1703-Date: Tue, 18 Dec 2018 13:19:46 -0800
1704-Subject: [PATCH] Remove GLib 2.32 deprecated APIs from tools
1705-
1706-Replace the GThread, GCond and GMutex APIs deprecated in GLib version
1707-2.32 in the VMware Tools source.
1708-
1709-Backport Notes:
1710-- open-vm-tools/lib/rpcChannel/rpcChannel.c context changes, still search/replace
1711-- open-vm-tools/services/plugins/vmbackup/stateMachine.c.rej context changes, still search/replace
1712-- open-vm-tools/services/vmtoolsd/toolsHangDetector.c - didn't exist in 10.3.10
1713-- open-vm-tools/lib/rpcChannel/glib_stubs.c - didn't exist in 10.3.10
1714-
1715-Origin: backport, https://github.com/vmware/open-vm-tools/commit/a7c141fc
1716-Bug-Ubuntu: https://bugs.launchpad.net/bugs/1842301
1717-Last-Update: 2019-09-03
1718-
1719----
1720- open-vm-tools/configure.ac | 2 +-
1721- open-vm-tools/lib/glibUtils/fileLogger.c | 10 ++--
1722- open-vm-tools/lib/glibUtils/stdLogger.c | 12 ++---
1723- open-vm-tools/lib/glibUtils/sysLogger.c | 12 ++---
1724- .../lib/include/vmware/tools/threadPool.h | 7 ++-
1725- open-vm-tools/lib/rpcChannel/glib_stubs.c | 6 +--
1726- open-vm-tools/lib/rpcChannel/rpcChannel.c | 20 +++----
1727- open-vm-tools/lib/rpcChannel/rpcChannelInt.h | 2 +-
1728- open-vm-tools/libvmtools/i18n.c | 16 +++---
1729- open-vm-tools/libvmtools/vmtoolsConfig.c | 6 +--
1730- .../services/plugins/vmbackup/stateMachine.c | 16 +++---
1731- .../services/plugins/vmbackup/vmBackupInt.h | 6 +--
1732- open-vm-tools/services/vmtoolsd/cmdLine.c | 2 -
1733- open-vm-tools/services/vmtoolsd/mainLoop.c | 4 --
1734- open-vm-tools/services/vmtoolsd/serviceObj.c | 16 +++---
1735- open-vm-tools/services/vmtoolsd/serviceObj.h | 4 +-
1736- open-vm-tools/services/vmtoolsd/threadPool.c | 52 +++++++++----------
1737- .../services/vmtoolsd/toolsHangDetector.c | 1 +
1738- open-vm-tools/vgauth/service/fileLogger.c | 4 --
1739- 19 files changed, 93 insertions(+), 105 deletions(-)
1740-
1741---- a/open-vm-tools/configure.ac
1742-+++ b/open-vm-tools/configure.ac
1743-@@ -420,7 +420,7 @@ AC_ARG_ENABLE([grabbitmqproxy],
1744- ])
1745-
1746- #
1747--# Check for glib 2.6.14 or greater.
1748-+# Check for glib 2.34.0 or greater.
1749- #
1750- AC_VMW_CHECK_LIB([glib-2.0],
1751- [GLIB2],
1752---- a/open-vm-tools/lib/glibUtils/fileLogger.c
1753-+++ b/open-vm-tools/lib/glibUtils/fileLogger.c
1754-@@ -44,7 +44,7 @@ typedef struct FileLogger {
1755- guint maxFiles;
1756- gboolean append;
1757- gboolean error;
1758-- GStaticMutex lock;
1759-+ GMutex lock;
1760- } FileLogger;
1761-
1762-
1763-@@ -348,7 +348,7 @@ FileLoggerLog(const gchar *domain,
1764- FileLogger *logger = data;
1765- gsize written;
1766-
1767-- g_static_mutex_lock(&logger->lock);
1768-+ g_mutex_lock(&logger->lock);
1769-
1770- if (logger->error) {
1771- goto exit;
1772-@@ -387,7 +387,7 @@ FileLoggerLog(const gchar *domain,
1773- }
1774-
1775- exit:
1776-- g_static_mutex_unlock(&logger->lock);
1777-+ g_mutex_unlock(&logger->lock);
1778- }
1779-
1780-
1781-@@ -409,7 +409,7 @@ FileLoggerDestroy(gpointer data)
1782- if (logger->file != NULL) {
1783- g_io_channel_unref(logger->file);
1784- }
1785-- g_static_mutex_free(&logger->lock);
1786-+ g_mutex_clear(&logger->lock);
1787- g_free(logger->path);
1788- g_free(logger);
1789- }
1790-@@ -456,7 +456,7 @@ GlibUtils_CreateFileLogger(const char *p
1791- data->append = append;
1792- data->maxSize = maxSize * 1024 * 1024;
1793- data->maxFiles = maxFiles + 1; /* To account for the active log file. */
1794-- g_static_mutex_init(&data->lock);
1795-+ g_mutex_init(&data->lock);
1796-
1797- return &data->handler;
1798- }
1799---- a/open-vm-tools/lib/glibUtils/stdLogger.c
1800-+++ b/open-vm-tools/lib/glibUtils/stdLogger.c
1801-@@ -1,5 +1,5 @@
1802- /*********************************************************
1803-- * Copyright (C) 2010-2016 VMware, Inc. All rights reserved.
1804-+ * Copyright (C) 2010-2018 VMware, Inc. All rights reserved.
1805- *
1806- * This program is free software; you can redistribute it and/or modify it
1807- * under the terms of the GNU Lesser General Public License as published
1808-@@ -27,7 +27,7 @@
1809- #include <stdio.h>
1810-
1811- #if defined(_WIN32)
1812--static GStaticMutex gConsoleLock = G_STATIC_MUTEX_INIT;
1813-+static GMutex gConsoleLock;
1814- static gint gRefCount = 0;
1815- #endif
1816-
1817-@@ -66,12 +66,12 @@ StdLoggerLog(const gchar *domain,
1818- StdLogger *sdata = data;
1819-
1820- if (!sdata->attached) {
1821-- g_static_mutex_lock(&gConsoleLock);
1822-+ g_mutex_lock(&gConsoleLock);
1823- if (gRefCount != 0 || GlibUtils_AttachConsole()) {
1824- gRefCount++;
1825- sdata->attached = TRUE;
1826- }
1827-- g_static_mutex_unlock(&gConsoleLock);
1828-+ g_mutex_unlock(&gConsoleLock);
1829- }
1830-
1831- if (!sdata->attached) {
1832-@@ -105,11 +105,11 @@ StdLoggerDestroy(gpointer data)
1833- {
1834- #if defined(_WIN32)
1835- StdLogger *sdata = data;
1836-- g_static_mutex_lock(&gConsoleLock);
1837-+ g_mutex_lock(&gConsoleLock);
1838- if (sdata->attached && --gRefCount == 0) {
1839- FreeConsole();
1840- }
1841-- g_static_mutex_unlock(&gConsoleLock);
1842-+ g_mutex_unlock(&gConsoleLock);
1843- #endif
1844- g_free(data);
1845- }
1846---- a/open-vm-tools/lib/glibUtils/sysLogger.c
1847-+++ b/open-vm-tools/lib/glibUtils/sysLogger.c
1848-@@ -1,5 +1,5 @@
1849- /*********************************************************
1850-- * Copyright (C) 2010-2016 VMware, Inc. All rights reserved.
1851-+ * Copyright (C) 2010-2018 VMware, Inc. All rights reserved.
1852- *
1853- * This program is free software; you can redistribute it and/or modify it
1854- * under the terms of the GNU Lesser General Public License as published
1855-@@ -38,7 +38,7 @@ typedef struct SysLogger {
1856-
1857-
1858- static SysLogger *gSysLogger;
1859--static GStaticMutex gSysLoggerLock = G_STATIC_MUTEX_INIT;
1860-+static GMutex gSysLoggerLock;
1861-
1862-
1863- /*
1864-@@ -105,7 +105,7 @@ SysLoggerUnref(gpointer data)
1865- {
1866- g_return_if_fail(data == gSysLogger);
1867- g_return_if_fail(gSysLogger->refcount > 0);
1868-- g_static_mutex_lock(&gSysLoggerLock);
1869-+ g_mutex_lock(&gSysLoggerLock);
1870- gSysLogger->refcount -= 1;
1871- if (gSysLogger->refcount == 0) {
1872- closelog();
1873-@@ -113,7 +113,7 @@ SysLoggerUnref(gpointer data)
1874- g_free(gSysLogger);
1875- gSysLogger = NULL;
1876- }
1877-- g_static_mutex_unlock(&gSysLoggerLock);
1878-+ g_mutex_unlock(&gSysLoggerLock);
1879- }
1880-
1881-
1882-@@ -140,7 +140,7 @@ GlibLogger *
1883- GlibUtils_CreateSysLogger(const char *domain,
1884- const char *facility)
1885- {
1886-- g_static_mutex_lock(&gSysLoggerLock);
1887-+ g_mutex_lock(&gSysLoggerLock);
1888- if (gSysLogger == NULL) {
1889- int facid = LOG_USER;
1890-
1891-@@ -203,7 +203,7 @@ GlibUtils_CreateSysLogger(const char *do
1892- } else {
1893- gSysLogger->refcount += 1;
1894- }
1895-- g_static_mutex_unlock(&gSysLoggerLock);
1896-+ g_mutex_unlock(&gSysLoggerLock);
1897- return &gSysLogger->handler;
1898- }
1899-
1900---- a/open-vm-tools/lib/include/vmware/tools/threadPool.h
1901-+++ b/open-vm-tools/lib/include/vmware/tools/threadPool.h
1902-@@ -1,5 +1,5 @@
1903- /*********************************************************
1904-- * Copyright (C) 2010-2016 VMware, Inc. All rights reserved.
1905-+ * Copyright (C) 2010-2018 VMware, Inc. All rights reserved.
1906- *
1907- * This program is free software; you can redistribute it and/or modify it
1908- * under the terms of the GNU Lesser General Public License as published
1909-@@ -70,6 +70,7 @@ typedef struct ToolsCorePool {
1910- GDestroyNotify dtor);
1911- void (*cancel)(guint id);
1912- gboolean (*start)(ToolsAppCtx *ctx,
1913-+ const gchar *threadName,
1914- ToolsCorePoolCb cb,
1915- ToolsCorePoolCb interrupt,
1916- gpointer data,
1917-@@ -179,6 +180,7 @@ ToolsCorePool_CancelTask(ToolsAppCtx *ct
1918- * some other method of communicating with the thread.
1919- *
1920- * @param[in] ctx Application context.
1921-+ * @param[in] threadName Name for the new thread.
1922- * @param[in] cb Function that implements the task to execute.
1923- * @param[in] interrupt A function that will request the task to be
1924- * interrupted. This will be called when the pool
1925-@@ -197,6 +199,7 @@ ToolsCorePool_CancelTask(ToolsAppCtx *ct
1926-
1927- G_INLINE_FUNC gboolean
1928- ToolsCorePool_StartThread(ToolsAppCtx *ctx,
1929-+ const gchar *threadName,
1930- ToolsCorePoolCb cb,
1931- ToolsCorePoolCb interrupt,
1932- gpointer data,
1933-@@ -204,7 +207,7 @@ ToolsCorePool_StartThread(ToolsAppCtx *c
1934- {
1935- ToolsCorePool *pool = ToolsCorePool_GetPool(ctx);
1936- if (pool != NULL) {
1937-- return pool->start(ctx, cb, interrupt, data, dtor);
1938-+ return pool->start(ctx, threadName, cb, interrupt, data, dtor);
1939- }
1940- return FALSE;
1941- }
1942---- a/open-vm-tools/lib/rpcChannel/rpcChannel.c
1943-+++ b/open-vm-tools/lib/rpcChannel/rpcChannel.c
1944-@@ -119,7 +119,7 @@ RpcChannelRestart(gpointer _chan)
1945- gboolean chanStarted;
1946-
1947- /* Synchronize with any RpcChannel_Send calls by other threads. */
1948-- g_static_mutex_lock(&chan->impl.outLock);
1949-+ g_mutex_lock(&chan->impl.outLock);
1950-
1951- RpcChannelStopNoLock(&chan->impl);
1952-
1953-@@ -128,7 +128,7 @@ RpcChannelRestart(gpointer _chan)
1954- gVSocketFailed = FALSE;
1955-
1956- chanStarted = RpcChannel_Start(&chan->impl);
1957-- g_static_mutex_unlock(&chan->impl.outLock);
1958-+ g_mutex_unlock(&chan->impl.outLock);
1959- if (!chanStarted) {
1960- Warning("Channel restart failed [%d]\n", chan->rpcResetErrorCount);
1961- if (chan->resetCb != NULL) {
1962-@@ -750,7 +750,7 @@ RpcChannel_New(void)
1963- chan = BackdoorChannel_New();
1964- #endif
1965- if (chan) {
1966-- g_static_mutex_init(&chan->outLock);
1967-+ g_mutex_init(&chan->outLock);
1968- }
1969- return chan;
1970- }
1971-@@ -766,7 +766,7 @@ void
1972- RpcChannel_Shutdown(RpcChannel *chan)
1973- {
1974- if (chan != NULL) {
1975-- g_static_mutex_free(&chan->outLock);
1976-+ g_mutex_free(&chan->outLock);
1977- }
1978-
1979- if (chan != NULL && chan->funcs != NULL && chan->funcs->shutdown != NULL) {
1980-@@ -883,9 +883,9 @@ RpcChannelStopNoLock(RpcChannel *chan)
1981- void
1982- RpcChannel_Stop(RpcChannel *chan)
1983- {
1984-- g_static_mutex_lock(&chan->outLock);
1985-+ g_mutex_lock(&chan->outLock);
1986- RpcChannelStopNoLock(chan);
1987-- g_static_mutex_unlock(&chan->outLock);
1988-+ g_mutex_unlock(&chan->outLock);
1989- }
1990-
1991-
1992-@@ -952,7 +952,7 @@ RpcChannel_Send(RpcChannel *chan,
1993-
1994- ASSERT(chan && chan->funcs);
1995-
1996-- g_static_mutex_lock(&chan->outLock);
1997-+ g_mutex_lock(&chan->outLock);
1998-
1999- funcs = chan->funcs;
2000- ASSERT(funcs->send);
2001-@@ -1003,7 +1003,7 @@ done:
2002- }
2003-
2004- exit:
2005-- g_static_mutex_unlock(&chan->outLock);
2006-+ g_mutex_unlock(&chan->outLock);
2007- return ok && rpcStatus;
2008- }
2009-
2010---- a/open-vm-tools/lib/rpcChannel/rpcChannelInt.h
2011-+++ b/open-vm-tools/lib/rpcChannel/rpcChannelInt.h
2012-@@ -69,7 +69,7 @@ struct _RpcChannel {
2013- const char *appName;
2014- gpointer appCtx;
2015- #endif
2016-- GStaticMutex outLock;
2017-+ GMutex outLock;
2018- #if defined(NEED_RPCIN)
2019- struct RpcIn *in;
2020- gboolean inStarted;
2021---- a/open-vm-tools/libvmtools/i18n.c
2022-+++ b/open-vm-tools/libvmtools/i18n.c
2023-@@ -1,5 +1,5 @@
2024- /*********************************************************
2025-- * Copyright (C) 2010-2016 VMware, Inc. All rights reserved.
2026-+ * Copyright (C) 2010-2018 VMware, Inc. All rights reserved.
2027- *
2028- * This program is free software; you can redistribute it and/or modify it
2029- * under the terms of the GNU Lesser General Public License as published
2030-@@ -54,7 +54,7 @@ typedef struct MsgCatalog {
2031-
2032- typedef struct MsgState {
2033- HashTable *domains; /* List of text domains. */
2034-- GStaticMutex lock; /* Mutex to protect shared state. */
2035-+ GMutex lock; /* Mutex to protect shared state. */
2036- } MsgState;
2037-
2038-
2039-@@ -133,7 +133,7 @@ MsgInitState(gpointer unused)
2040- {
2041- ASSERT(gMsgState == NULL);
2042- gMsgState = g_new0(MsgState, 1);
2043-- g_static_mutex_init(&gMsgState->lock);
2044-+ g_mutex_init(&gMsgState->lock);
2045- return NULL;
2046- }
2047-
2048-@@ -344,7 +344,7 @@ MsgGetString(const char *domain,
2049- * This lock is pretty coarse-grained, but a lot of the code below just runs
2050- * in exceptional situations, so it should be OK.
2051- */
2052-- g_static_mutex_lock(&state->lock);
2053-+ g_mutex_lock(&state->lock);
2054-
2055- catalog = MsgGetCatalog(domain);
2056- if (catalog != NULL) {
2057-@@ -415,7 +415,7 @@ MsgGetString(const char *domain,
2058- }
2059- }
2060-
2061-- g_static_mutex_unlock(&state->lock);
2062-+ g_mutex_unlock(&state->lock);
2063-
2064- return strp;
2065- }
2066-@@ -682,7 +682,7 @@ VMToolsMsgCleanup(void)
2067- if (gMsgState->domains != NULL) {
2068- HashTable_Free(gMsgState->domains);
2069- }
2070-- g_static_mutex_free(&gMsgState->lock);
2071-+ g_mutex_clear(&gMsgState->lock);
2072- g_free(gMsgState);
2073- }
2074- }
2075-@@ -775,9 +775,9 @@ VMTools_BindTextDomain(const char *domai
2076- "catalog dir '%s'.\n", domain, lang, catdir);
2077- }
2078- } else {
2079-- g_static_mutex_lock(&state->lock);
2080-+ g_mutex_lock(&state->lock);
2081- MsgSetCatalog(domain, catalog);
2082-- g_static_mutex_unlock(&state->lock);
2083-+ g_mutex_unlock(&state->lock);
2084- }
2085- g_free(file);
2086- free(dfltdir);
2087---- a/open-vm-tools/libvmtools/vmtoolsConfig.c
2088-+++ b/open-vm-tools/libvmtools/vmtoolsConfig.c
2089-@@ -1,5 +1,5 @@
2090- /*********************************************************
2091-- * Copyright (C) 2008-2017 VMware, Inc. All rights reserved.
2092-+ * Copyright (C) 2008-2018 VMware, Inc. All rights reserved.
2093- *
2094- * This program is free software; you can redistribute it and/or modify it
2095- * under the terms of the GNU Lesser General Public License as published
2096-@@ -330,11 +330,7 @@ VMTools_LoadConfig(const gchar *path,
2097- gchar *defaultPath = NULL;
2098- gchar *localPath = NULL;
2099- /* GStatBuf was added in 2.26. */
2100--#if GLIB_CHECK_VERSION(2, 26, 0)
2101- GStatBuf confStat;
2102--#else
2103-- struct stat confStat;
2104--#endif
2105- GHashTable *old = NULL;
2106- GError *err = NULL;
2107- GKeyFile *cfg = NULL;
2108---- a/open-vm-tools/services/plugins/vmbackup/stateMachine.c
2109-+++ b/open-vm-tools/services/plugins/vmbackup/stateMachine.c
2110-@@ -335,12 +335,12 @@ VmBackupFinalize(void)
2111- g_source_unref(gBackupState->abortTimer);
2112- }
2113-
2114-- g_static_mutex_lock(&gBackupState->opLock);
2115-+ g_mutex_lock(&gBackupState->opLock);
2116- if (gBackupState->currentOp != NULL) {
2117- VmBackup_Cancel(gBackupState->currentOp);
2118- VmBackup_Release(gBackupState->currentOp);
2119- }
2120-- g_static_mutex_unlock(&gBackupState->opLock);
2121-+ g_mutex_unlock(&gBackupState->opLock);
2122-
2123- VmBackup_SendEvent(VMBACKUP_EVENT_REQUESTOR_DONE, VMBACKUP_SUCCESS, "");
2124-
2125-@@ -358,7 +358,7 @@ VmBackupFinalize(void)
2126- if (gBackupState->completer != NULL) {
2127- gBackupState->completer->release(gBackupState->completer);
2128- }
2129-- g_static_mutex_free(&gBackupState->opLock);
2130-+ g_mutex_clear(&gBackupState->opLock);
2131- g_free(gBackupState->scriptArg);
2132- g_free(gBackupState->volumes);
2133- g_free(gBackupState->snapshots);
2134-@@ -486,13 +486,13 @@ VmBackupDoAbort(void)
2135- gBackupState->machineState != VMBACKUP_MSTATE_SYNC_ERROR) {
2136- const char *eventMsg = "Quiesce aborted.";
2137- /* Mark the current operation as cancelled. */
2138-- g_static_mutex_lock(&gBackupState->opLock);
2139-+ g_mutex_lock(&gBackupState->opLock);
2140- if (gBackupState->currentOp != NULL) {
2141- VmBackup_Cancel(gBackupState->currentOp);
2142- VmBackup_Release(gBackupState->currentOp);
2143- gBackupState->currentOp = NULL;
2144- }
2145-- g_static_mutex_unlock(&gBackupState->opLock);
2146-+ g_mutex_unlock(&gBackupState->opLock);
2147-
2148- #ifdef __linux__
2149- /* If quiescing has been completed, then undo it. */
2150-@@ -559,7 +559,7 @@ VmBackupPostProcessCurrentOp(gboolean *p
2151-
2152- *pending = FALSE;
2153-
2154-- g_static_mutex_lock(&gBackupState->opLock);
2155-+ g_mutex_lock(&gBackupState->opLock);
2156-
2157- if (gBackupState->currentOp != NULL) {
2158- g_debug("%s: checking %s\n", __FUNCTION__, gBackupState->currentOpName);
2159-@@ -626,7 +626,7 @@ VmBackupPostProcessCurrentOp(gboolean *p
2160- }
2161-
2162- exit:
2163-- g_static_mutex_unlock(&gBackupState->opLock);
2164-+ g_mutex_unlock(&gBackupState->opLock);
2165- return retVal;
2166- }
2167-
2168-@@ -1007,7 +1007,7 @@ VmBackupStartCommon(RpcInData *data,
2169- gBackupState->provider = provider;
2170- gBackupState->completer = completer;
2171- gBackupState->needsPriv = FALSE;
2172-- g_static_mutex_init(&gBackupState->opLock);
2173-+ g_mutex_init(&gBackupState->opLock);
2174- gBackupState->enableNullDriver = VMBACKUP_CONFIG_GET_BOOL(ctx->config,
2175- "enableNullDriver",
2176- TRUE);
2177---- a/open-vm-tools/services/plugins/vmbackup/vmBackupInt.h
2178-+++ b/open-vm-tools/services/plugins/vmbackup/vmBackupInt.h
2179-@@ -111,7 +111,7 @@ typedef struct VmBackupState {
2180- ToolsAppCtx *ctx;
2181- VmBackupOp *currentOp;
2182- const char *currentOpName;
2183-- GStaticMutex opLock; // See note above
2184-+ GMutex opLock; // See note above
2185- char *volumes;
2186- char *snapshots;
2187- guint pollPeriod;
2188-@@ -207,14 +207,14 @@ VmBackup_SetCurrentOp(VmBackupState *sta
2189- ASSERT(state->currentOp == NULL);
2190- ASSERT(currentOpName != NULL);
2191-
2192-- g_static_mutex_lock(&state->opLock);
2193-+ g_mutex_lock(&state->opLock);
2194-
2195- state->currentOp = op;
2196- state->callback = callback;
2197- state->currentOpName = currentOpName;
2198- state->forceRequeue = (callback != NULL && op == NULL);
2199-
2200-- g_static_mutex_unlock(&state->opLock);
2201-+ g_mutex_unlock(&state->opLock);
2202-
2203- return (op != NULL);
2204- }
2205---- a/open-vm-tools/services/vmtoolsd/cmdLine.c
2206-+++ b/open-vm-tools/services/vmtoolsd/cmdLine.c
2207-@@ -304,9 +304,7 @@ ToolsCore_ParseCommandLine(ToolsServiceS
2208- }
2209-
2210- context = g_option_context_new(NULL);
2211--#if GLIB_CHECK_VERSION(2, 12, 0)
2212- g_option_context_set_summary(context, N_("Runs the VMware Tools daemon."));
2213--#endif
2214- g_option_context_add_main_entries(context, clOptions, NULL);
2215- g_option_group_set_error_hook(g_option_context_get_main_group(context),
2216- ToolsCoreCmdLineError);
2217---- a/open-vm-tools/services/vmtoolsd/mainLoop.c
2218-+++ b/open-vm-tools/services/vmtoolsd/mainLoop.c
2219-@@ -550,10 +550,6 @@ ToolsCore_Setup(ToolsServiceState *state
2220- GMainContext *gctx;
2221- ToolsServiceProperty ctxProp = { TOOLS_CORE_PROP_CTX };
2222-
2223-- if (!g_thread_supported()) {
2224-- g_thread_init(NULL);
2225-- }
2226--
2227- /*
2228- * Useful for debugging purposes. Log the vesion and build information.
2229- */
2230---- a/open-vm-tools/services/vmtoolsd/serviceObj.c
2231-+++ b/open-vm-tools/services/vmtoolsd/serviceObj.c
2232-@@ -180,14 +180,14 @@ ToolsCoreServiceGetProperty(GObject *obj
2233-
2234- id -= 1;
2235-
2236-- g_mutex_lock(self->lock);
2237-+ g_mutex_lock(&self->lock);
2238-
2239- if (id < self->props->len) {
2240- ServiceProperty *p = &g_array_index(self->props, ServiceProperty, id);
2241- g_value_set_pointer(value, p->value);
2242- }
2243-
2244-- g_mutex_unlock(self->lock);
2245-+ g_mutex_unlock(&self->lock);
2246- }
2247-
2248-
2249-@@ -217,14 +217,14 @@ ToolsCoreServiceSetProperty(GObject *obj
2250-
2251- id -= 1;
2252-
2253-- g_mutex_lock(self->lock);
2254-+ g_mutex_lock(&self->lock);
2255-
2256- if (id < self->props->len) {
2257- p = &g_array_index(self->props, ServiceProperty, id);
2258- p->value = g_value_get_pointer(value);
2259- }
2260-
2261-- g_mutex_unlock(self->lock);
2262-+ g_mutex_unlock(&self->lock);
2263-
2264- if (p != NULL) {
2265- g_object_notify(object, p->name);
2266-@@ -260,7 +260,7 @@ ToolsCoreServiceCtor(GType type,
2267- params);
2268-
2269- self = TOOLSCORE_SERVICE(object);
2270-- self->lock = g_mutex_new();
2271-+ g_mutex_init(&self->lock);
2272- self->props = g_array_new(FALSE, FALSE, sizeof (ServiceProperty));
2273-
2274- return object;
2275-@@ -296,7 +296,7 @@ ToolsCoreServiceDtor(GObject *object)
2276- }
2277-
2278- g_array_free(self->props, TRUE);
2279-- g_mutex_free(self->lock);
2280-+ g_mutex_clear(&self->lock);
2281- }
2282-
2283-
2284-@@ -459,7 +459,7 @@ ToolsCoreService_RegisterProperty(ToolsC
2285- prop->name,
2286- G_PARAM_READWRITE);
2287-
2288-- g_mutex_lock(obj->lock);
2289-+ g_mutex_lock(&obj->lock);
2290-
2291- sprop.id = ++PROP_ID_SEQ;
2292- sprop.name = g_strdup(prop->name);
2293-@@ -467,6 +467,6 @@ ToolsCoreService_RegisterProperty(ToolsC
2294- g_array_append_val(obj->props, sprop);
2295- g_object_class_install_property(G_OBJECT_CLASS(klass), sprop.id, pspec);
2296-
2297-- g_mutex_unlock(obj->lock);
2298-+ g_mutex_unlock(&obj->lock);
2299- }
2300-
2301---- a/open-vm-tools/services/vmtoolsd/serviceObj.h
2302-+++ b/open-vm-tools/services/vmtoolsd/serviceObj.h
2303-@@ -1,5 +1,5 @@
2304- /*********************************************************
2305-- * Copyright (C) 2009-2016 VMware, Inc. All rights reserved.
2306-+ * Copyright (C) 2009-2018 VMware, Inc. All rights reserved.
2307- *
2308- * This program is free software; you can redistribute it and/or modify it
2309- * under the terms of the GNU Lesser General Public License as published
2310-@@ -39,7 +39,7 @@
2311-
2312- typedef struct ToolsCoreService {
2313- GObject parent;
2314-- GMutex *lock;
2315-+ GMutex lock;
2316- GArray *props;
2317- } ToolsCoreService;
2318-
2319---- a/open-vm-tools/services/vmtoolsd/threadPool.c
2320-+++ b/open-vm-tools/services/vmtoolsd/threadPool.c
2321-@@ -1,5 +1,5 @@
2322- /*********************************************************
2323-- * Copyright (C) 2010-2016 VMware, Inc. All rights reserved.
2324-+ * Copyright (C) 2010-2018 VMware, Inc. All rights reserved.
2325- *
2326- * This program is free software; you can redistribute it and/or modify it
2327- * under the terms of the GNU Lesser General Public License as published
2328-@@ -40,7 +40,7 @@ typedef struct ThreadPoolState {
2329- GThreadPool *pool;
2330- GQueue *workQueue;
2331- GPtrArray *threads;
2332-- GMutex *lock;
2333-+ GMutex lock;
2334- guint nextWorkId;
2335- } ThreadPoolState;
2336-
2337-@@ -170,9 +170,9 @@ ToolsCorePoolDoWork(gpointer data)
2338- * In multi-threaded mode, the thread pool callback already did this.
2339- */
2340- if (gState.pool == NULL) {
2341-- g_mutex_lock(gState.lock);
2342-+ g_mutex_lock(&gState.lock);
2343- g_queue_remove(gState.workQueue, work);
2344-- g_mutex_unlock(gState.lock);
2345-+ g_mutex_unlock(&gState.lock);
2346- }
2347-
2348- work->cb(gState.ctx, work->data);
2349-@@ -223,7 +223,7 @@ ToolsCorePoolRunThread(gpointer data)
2350- task->cb(gState.ctx, task->data);
2351- task->active = FALSE;
2352-
2353-- g_mutex_lock(gState.lock);
2354-+ g_mutex_lock(&gState.lock);
2355- /* If not active, the shutdown function will clean things up. */
2356- if (gState.active) {
2357- g_ptr_array_remove(gState.threads, task);
2358-@@ -232,7 +232,7 @@ ToolsCorePoolRunThread(gpointer data)
2359- task,
2360- ToolsCorePoolDestroyThread);
2361- }
2362-- g_mutex_unlock(gState.lock);
2363-+ g_mutex_unlock(&gState.lock);
2364-
2365- return NULL;
2366- }
2367-@@ -257,9 +257,9 @@ ToolsCorePoolRunWorker(gpointer state,
2368- {
2369- WorkerTask *work;
2370-
2371-- g_mutex_lock(gState.lock);
2372-+ g_mutex_lock(&gState.lock);
2373- work = g_queue_pop_tail(gState.workQueue);
2374-- g_mutex_unlock(gState.lock);
2375-+ g_mutex_unlock(&gState.lock);
2376-
2377- ASSERT(work != NULL);
2378-
2379-@@ -300,7 +300,7 @@ ToolsCorePoolSubmit(ToolsAppCtx *ctx,
2380- task->data = data;
2381- task->dtor = dtor;
2382-
2383-- g_mutex_lock(gState.lock);
2384-+ g_mutex_lock(&gState.lock);
2385-
2386- if (!gState.active) {
2387- g_free(task);
2388-@@ -351,7 +351,7 @@ ToolsCorePoolSubmit(ToolsAppCtx *ctx,
2389- ToolsCorePoolDestroyTask);
2390-
2391- exit:
2392-- g_mutex_unlock(gState.lock);
2393-+ g_mutex_unlock(&gState.lock);
2394- return id;
2395- }
2396-
2397-@@ -378,7 +378,7 @@ ToolsCorePoolCancel(guint id)
2398-
2399- g_return_if_fail(id != 0);
2400-
2401-- g_mutex_lock(gState.lock);
2402-+ g_mutex_lock(&gState.lock);
2403- if (!gState.active) {
2404- goto exit;
2405- }
2406-@@ -390,7 +390,7 @@ ToolsCorePoolCancel(guint id)
2407- }
2408-
2409- exit:
2410-- g_mutex_unlock(gState.lock);
2411-+ g_mutex_unlock(&gState.lock);
2412-
2413- if (task != NULL) {
2414- if (task->srcId > 0) {
2415-@@ -410,11 +410,12 @@ exit:
2416- *
2417- * @see ToolsCorePool_StartThread()
2418- *
2419-- * @param[in] ctx Application context.
2420-- * @param[in] cb Callback that executes the task.
2421-- * @param[in] interrupt Callback that interrupts the task.
2422-- * @param[in] data Opaque data.
2423-- * @param[in] dtor Destructor for the task data.
2424-+ * @param[in] ctx Application context.
2425-+ * @param[in] threadName Name for the new thread.
2426-+ * @param[in] cb Callback that executes the task.
2427-+ * @param[in] interrupt Callback that interrupts the task.
2428-+ * @param[in] data Opaque data.
2429-+ * @param[in] dtor Destructor for the task data.
2430- *
2431- * @return TRUE iff thread was successfully started.
2432- *
2433-@@ -423,6 +424,7 @@ exit:
2434-
2435- static gboolean
2436- ToolsCorePoolStart(ToolsAppCtx *ctx,
2437-+ const gchar *threadName,
2438- ToolsCorePoolCb cb,
2439- ToolsCorePoolCb interrupt,
2440- gpointer data,
2441-@@ -431,7 +433,7 @@ ToolsCorePoolStart(ToolsAppCtx *ctx,
2442- GError *err = NULL;
2443- StandaloneTask *task = NULL;
2444-
2445-- g_mutex_lock(gState.lock);
2446-+ g_mutex_lock(&gState.lock);
2447- if (!gState.active) {
2448- goto exit;
2449- }
2450-@@ -442,7 +444,7 @@ ToolsCorePoolStart(ToolsAppCtx *ctx,
2451- task->interrupt = interrupt;
2452- task->data = data;
2453- task->dtor = dtor;
2454-- task->thread = g_thread_create(ToolsCorePoolRunThread, task, TRUE, &err);
2455-+ task->thread = g_thread_try_new(threadName, ToolsCorePoolRunThread, task, &err);
2456-
2457- if (err == NULL) {
2458- g_ptr_array_add(gState.threads, task);
2459-@@ -454,7 +456,7 @@ ToolsCorePoolStart(ToolsAppCtx *ctx,
2460- }
2461-
2462- exit:
2463-- g_mutex_unlock(gState.lock);
2464-+ g_mutex_unlock(&gState.lock);
2465- return task != NULL;
2466- }
2467-
2468-@@ -497,7 +499,6 @@ ToolsCorePool_Init(ToolsAppCtx *ctx)
2469- gState.pool = g_thread_pool_new(ToolsCorePoolRunWorker,
2470- NULL, maxThreads, FALSE, &err);
2471- if (err == NULL) {
2472--#if GLIB_CHECK_VERSION(2, 10, 0)
2473- gint maxIdleTime;
2474- gint maxUnused;
2475-
2476-@@ -517,7 +518,6 @@ ToolsCorePool_Init(ToolsAppCtx *ctx)
2477-
2478- g_thread_pool_set_max_idle_time(maxIdleTime);
2479- g_thread_pool_set_max_unused_threads(maxUnused);
2480--#endif
2481- } else {
2482- g_warning("error initializing thread pool, running single threaded: %s",
2483- err->message);
2484-@@ -526,7 +526,7 @@ ToolsCorePool_Init(ToolsAppCtx *ctx)
2485- }
2486-
2487- gState.active = TRUE;
2488-- gState.lock = g_mutex_new();
2489-+ g_mutex_init(&gState.lock);
2490- gState.threads = g_ptr_array_new();
2491- gState.workQueue = g_queue_new();
2492-
2493-@@ -553,9 +553,9 @@ ToolsCorePool_Shutdown(ToolsAppCtx *ctx)
2494- {
2495- guint i;
2496-
2497-- g_mutex_lock(gState.lock);
2498-+ g_mutex_lock(&gState.lock);
2499- gState.active = FALSE;
2500-- g_mutex_unlock(gState.lock);
2501-+ g_mutex_unlock(&gState.lock);
2502-
2503- /* Notify all spawned threads to stop. */
2504- for (i = 0; i < gState.threads->len; i++) {
2505-@@ -589,7 +589,7 @@ ToolsCorePool_Shutdown(ToolsAppCtx *ctx)
2506- /* Cleanup. */
2507- g_ptr_array_free(gState.threads, TRUE);
2508- g_queue_free(gState.workQueue);
2509-- g_mutex_free(gState.lock);
2510-+ g_mutex_clear(&gState.lock);
2511- memset(&gState, 0, sizeof gState);
2512- g_object_set(ctx->serviceObj, TOOLS_CORE_PROP_TPOOL, NULL, NULL);
2513- }
2514---- a/open-vm-tools/vgauth/service/fileLogger.c
2515-+++ b/open-vm-tools/vgauth/service/fileLogger.c
2516-@@ -74,11 +74,7 @@ ServiceFileLoggerOpen(FileLoggerData *da
2517-
2518- if (g_file_test(path, G_FILE_TEST_EXISTS)) {
2519- /* GStatBuf was added in 2.26. */
2520--#if GLIB_CHECK_VERSION(2, 26, 0)
2521- GStatBuf fstats;
2522--#else
2523-- struct stat fstats;
2524--#endif
2525-
2526- if (g_stat(path, &fstats) > -1) {
2527- g_atomic_int_set(&data->logSize, (gint) fstats.st_size);
2528diff --git a/debian/patches/gcc9-build-error-in-vmblocktest.c.patch b/debian/patches/gcc9-build-error-in-vmblocktest.c.patch
2529deleted file mode 100644
2530index bbc9e51..0000000
2531--- a/debian/patches/gcc9-build-error-in-vmblocktest.c.patch
2532+++ /dev/null
2533@@ -1,41 +0,0 @@
2534-From 553d128348f311080e156519e9ac26a518c8579d Mon Sep 17 00:00:00 2001
2535-From: Oliver Kurth <okurth@vmware.com>
2536-Date: Fri, 2 Aug 2019 11:07:19 -0700
2537-Subject: [PATCH] Fix gcc 9.1 build error in vmblocktest.c
2538-
2539-GCC 9.1 in Ubuntu eoan (19.10) failed to build open-vm-tools:
2540-error: '__builtin_strncpy' specified bound 4096 equals destination
2541-size [-Werror=stringop-truncation]
2542-
2543-Origin: upstream, https://github.com/vmware/open-vm-tools/commit/553d1283
2544-Bug-Ubuntu: https://bugs.launchpad.net/bugs/1842301
2545-Last-Update: 2019-09-03
2546-
2547----
2548- open-vm-tools/tests/testVmblock/vmblocktest.c | 5 +++--
2549- 1 file changed, 3 insertions(+), 2 deletions(-)
2550-
2551-diff --git a/open-vm-tools/tests/testVmblock/vmblocktest.c b/open-vm-tools/tests/testVmblock/vmblocktest.c
2552-index b018301a9..c45f1b550 100644
2553---- a/open-vm-tools/tests/testVmblock/vmblocktest.c
2554-+++ b/open-vm-tools/tests/testVmblock/vmblocktest.c
2555-@@ -1,5 +1,5 @@
2556- /*********************************************************
2557-- * Copyright (C) 2006-2017 VMware, Inc. All rights reserved.
2558-+ * Copyright (C) 2006-2017,2019 VMware, Inc. All rights reserved.
2559- *
2560- * This program is free software; you can redistribute it and/or modify it
2561- * under the terms of the GNU Lesser General Public License as published
2562-@@ -233,7 +233,8 @@ main(int argc,
2563- }
2564-
2565- create_file:
2566-- strncpy(buf, files[i].blockerName, sizeof buf);
2567-+ strncpy(buf, files[i].blockerName, sizeof buf - 1);
2568-+ buf[sizeof buf - 1] = '\0';
2569- strncat(buf, FILENAME, sizeof buf - strlen(files[i].blockerName));
2570- err = stat(buf, &statbuf);
2571- if (!err) {
2572---
2573-2.23.0
2574-
2575diff --git a/debian/patches/series b/debian/patches/series
2576index 68482d7..92cb923 100644
2577--- a/debian/patches/series
2578+++ b/debian/patches/series
2579@@ -1,6 +1,7 @@
2580 debian/pam-use-common-auth-account
2581 debian/max_nic_count
2582 debian/scsi-udev-rule
2583+<<<<<<< debian/patches/series
2584 fix-buster-OS-reporting
2585 gcc9
2586 gcc9-Remove-GLib-2.32-deprecated-APIs-from-tools.patch
2587@@ -10,3 +11,7 @@ gcc9-build-error-in-vmblocktest.c.patch
2588 lp-1847157-Fix-memory-leaks-in-vix-tools-plugin.patch
2589 lp-1847157-End-VGAuth-impersonation-in-the-case-of-error.patch
2590 lp-1847157-Fix-leaks-in-ListAliases-and-ListMappedAliases-9bc72.patch
2591+=======
2592+89c0d4445_GitHub-Issue-367.-Remove-references-to-deprecated-G_INLINE_FUNC
2593+fix_zfs_fs_detection
2594+>>>>>>> debian/patches/series
2595diff --git a/open-vm-tools/AUTHORS b/open-vm-tools/AUTHORS
2596index ff87a57..08cc28e 100644
2597--- a/open-vm-tools/AUTHORS
2598+++ b/open-vm-tools/AUTHORS
2599@@ -37,6 +37,15 @@ Ed Schouten Use standard SYSCTL_ADD_OID() macro to access the
2600 Steve Wills Fix vmmemctl.ko driver build for supported FreeBSD releases.
2601 - https://github.com/vmware/open-vm-tools/pull/140
2602
2603+John Eismeier Propose fix some spelling.
2604+ - https://github.com/vmware/open-vm-tools/pull/264
2605+
2606+Josh Paetzel Additional changes to vmmemctl.ko for FreeBSD 12.0 API changes.
2607+ - https://github.com/vmware/open-vm-tools/pull/286
2608+
2609 [Code]Ai Highlighted a potential NULL pointer dereference and four
2610 pieces of dead code.
2611 - https://github.com/vmware/open-vm-tools/pull/247
2612+
2613+Haruki Tsurumoto Fix Asianux identification
2614+ - https://github.com/vmware/open-vm-tools/pull/325
2615diff --git a/open-vm-tools/ChangeLog b/open-vm-tools/ChangeLog
2616index 2e5317f..bcbdaeb 100644
2617--- a/open-vm-tools/ChangeLog
2618+++ b/open-vm-tools/ChangeLog
2619@@ -1,40768 +1,20078 @@
2620-commit 4826a76513b6f8254132f664e07fa70ed18f22c4
2621+commit 94abb05ae948eae31091a5bdcdd5d78e5e0192d1
2622 Author: Oliver Kurth <okurth@vmware.com>
2623-Date: Sat Mar 16 10:40:23 2019 -0700
2624+Date: Wed Oct 2 17:48:35 2019 -0700
2625
2626- update version and build number
2627+ Fix leaks in ListAliases and ListMappedAliases.
2628
2629-commit 990cc40de10f257d1d3c01b69fe476c233afb950
2630+ The 'record' for each alias was being leaked.
2631+
2632+commit 87589da5255d84efad0c50446246b2788eeab582
2633 Author: Oliver Kurth <okurth@vmware.com>
2634-Date: Sat Mar 16 10:39:48 2019 -0700
2635+Date: Fri Sep 20 13:11:24 2019 -0700
2636
2637- correct verson numbers
2638+ release notes for 11.0.0
2639
2640-commit f6a274cf64eebfd574e8cf587b4ebaf1c579267f
2641+commit 3c03fd5446ddd23979380fd2518f1f5c7c116dbd
2642 Author: Oliver Kurth <okurth@vmware.com>
2643-Date: Sat Mar 16 10:27:03 2019 -0700
2644+Date: Fri Sep 20 11:08:35 2019 -0700
2645
2646- Update release notes for 10.3.10
2647+ update copyright header for lib/include/vmware/guestrpc/tclodefs.h
2648
2649-commit 640bd4f9c012b201ad1d45a131dad2e804f53766
2650+commit 99145edb39cc1e08b0848ea464fd17dca2ef2541
2651 Author: Oliver Kurth <okurth@vmware.com>
2652-Date: Wed Feb 6 16:47:22 2019 -0800
2653+Date: Fri Sep 20 11:07:16 2019 -0700
2654
2655- sync deploypkg files
2656+ update build number for release
2657
2658-commit 182eda3bc5f371339114241f0581f446e72def6d
2659+commit 570ec94ccfc5bcf2a55d891ae8af2a24bb4e9caf
2660 Author: Oliver Kurth <okurth@vmware.com>
2661-Date: Tue Feb 5 17:36:53 2019 -0800
2662+Date: Thu Aug 29 17:14:39 2019 -0700
2663
2664- Update copyright year to 2019 for OVT 10.3.10 files.
2665-
2666- * Few dnd related files have been modified since 10.3.5 OVT and
2667- we just missed updating the copyright year to 2019.
2668-
2669- * Updated the copyright year accordingly.
2670+ Due to a quirk the way patches were generated, the 'coomon-agent' directory was not removed as intended, but just contained empty files
2671
2672-commit ba83c29fcd703ecb6a13a7767bad180033234aea
2673+commit ae791f849d0e49d968a3ba068d6f421de936754d
2674 Author: Oliver Kurth <okurth@vmware.com>
2675-Date: Tue Jan 29 17:24:44 2019 -0800
2676+Date: Fri Aug 23 13:33:55 2019 -0700
2677
2678- Fix CentOS 7.6 detection
2679-
2680- The version information in /etc/centos-release has 3 parts,
2681- in particular for CentOS 7.6:
2682-
2683- CentOS Linux release 7.6.1810 (Core)
2684-
2685- This was misidentified as CentOS 6 because the substring "6."
2686- was matched before matching "7.". This change fixes this by
2687- requiring a space before the major version.
2688+ tools.conf example: add vss.disableAppQuiescing
2689
2690-commit f4708f4b5a9d24b122237875ce6a542f267caab3
2691+commit 867f9cf4fd9903e1e10e4d7f70fef3b7fdb2a5d3
2692 Author: Oliver Kurth <okurth@vmware.com>
2693-Date: Tue Jan 29 17:24:44 2019 -0800
2694+Date: Mon Aug 5 11:22:01 2019 -0700
2695
2696- Include vmware/tools/log.h to define g_info.
2697-
2698- A recent change added a call to g_info from syncManifest.c. This
2699- in turn is causing open-vm-tools builds to fail because g_info is
2700- not available on SLES 12sp1.
2701+ Enable the guest OS disk mapping feature as default.
2702
2703- To fix the problem, include vmware/tools/log.h in syncManifest.c.
2704- log.h defines g_info as a macro.
2705+ Enabling the OS disk mapping feature in VMware Tools 11.0.0 for
2706+ Windows and Linux guests.
2707
2708-commit 139a21cab79d971e9fe3ea5b8e993646b2e6cb48
2709+commit 782b42a5248cd01d37f0002aa7e30df4cc787129
2710 Author: Oliver Kurth <okurth@vmware.com>
2711-Date: Tue Jan 29 17:24:44 2019 -0800
2712+Date: Mon Aug 5 11:22:01 2019 -0700
2713
2714- Always send VMBACKUP_EVENT_GENERIC_MANIFEST during quiesced snapshots.
2715-
2716- vSphere 6.7 added a host-side interface that allows VMTools to send
2717- a "generic" backup manifest during a quiesced snapshot on Linux guests.
2718- VMTools 10.2.0 or later tries to notify the host of the backup manifest
2719- file through a vmbackup event message VMBACKUP_EVENT_GENERIC_MANIFEST.
2720- If the host is unable to field the message, then VMTools logs the
2721- failure and then continues with the quiesced snapshot in the older
2722- fashion, without the backup manifest.
2723-
2724- An earlier change attempted to reduce the amount of logging done when
2725- running on older hosts that don't support VMBACKUP_EVENT_GENERIC_MANIFEST
2726- by detecting when sending VMBACKUP_EVENT_GENERIC_MANIFEST fails and
2727- not sending the message again for subsequent quiesced snapshots.
2728- However, subsequent stress testing has uncovered problems with this
2729- approach when running on newer hosts; specifically, errors may sometimes
2730- be encountered on newer hosts when sending VMBACKUP_EVENT_GENERIC_MANIFEST.
2731- Therefore this change backs out that earlier change.
2732-
2733- Note that the need to solve the problem that that earlier change was
2734- intended to solve has been reduced because support for
2735- VMBACKUP_EVENT_GENERIC_MANIFEST has been backported to vSphere 6.5
2736- P03, which is available, and vSphere 6.0 P08, which is scheduled for
2737- release later this year. ESXi 5.5 is out of general support.
2738-
2739- This change also addresses an issue that surfaced when testing on a
2740- host without support for VMBACKUP_EVENT_GENERIC_MANIFEST.
2741- If VMTools fails to send VMBACKUP_EVENT_GENERIC_MANIFEST, the quiesced
2742- snapshot operation will be aborted rather than continuing as it should.
2743- To address this, create a new function, VmBackup_SendEventNoAbort,
2744- which does not abort the quiesced snapshot on failure, and call that
2745- function rather than VmBackup_SendEvent when sending
2746- VMBACKUP_EVENT_GENERIC_MANIFEST.
2747+ Fix broken command: vmtoolsd --cmd info-get | info-set
2748
2749-commit f9a93010ac532ab8eaaeba7f1de5c0c3e732554a
2750+commit d4922cad5f627b1dd3315f59ed8a5ce2f4767e83
2751 Author: Oliver Kurth <okurth@vmware.com>
2752-Date: Tue Jan 29 17:24:43 2019 -0800
2753+Date: Mon Aug 5 11:22:01 2019 -0700
2754
2755- Update copyright year to 2019.
2756+ [OVT] Update copyright year to 2019.
2757+
2758+ A new version of VMware Tools 11.0.0 will be released in 2019. All
2759+ applicable files need to stamped with 2019 copyright year.
2760
2761-commit 74d165bab17132b50d909b7f2e5cb19f3f140a01
2762+commit 5cb75e0a93b9531875e9e29515a0ea912ca3aca7
2763 Author: Oliver Kurth <okurth@vmware.com>
2764-Date: Tue Jan 29 14:03:19 2019 -0800
2765+Date: Mon Aug 5 11:22:00 2019 -0700
2766
2767- Fix some bad derefs in primary NIC gather code
2768+ Avoid freezing mount points for same device.
2769
2770- Found by user in https://github.com/vmware/open-vm-tools/issues/272
2771+ Loopback device setup could cause a cyclic dependency
2772+ between 2 mount points. In order to break the cycle,
2773+ avoid freezing the mount points to the same device.
2774
2775- Debug code tries to access a struct field that may not be init'd.
2776- Pointer deref'd without a sanity check.
2777+ This change also skips some system mount points for 'tmpfs'
2778+ and 'cgroup' etc as those share the same device/FS name.
2779+ This is fine because we can't quiese those mount points
2780+ anyway (system mount points don't support quiescing).
2781
2782-commit e88f91b00a715b79255de6576506d80ecfdb064c
2783+commit 385dc97f645ccaa4a0550b53949715394a009fb6
2784 Author: Oliver Kurth <okurth@vmware.com>
2785-Date: Tue Jan 29 14:03:19 2019 -0800
2786+Date: Mon Aug 5 11:21:59 2019 -0700
2787
2788- Fix possible security issue with the permissions of the intermediate
2789- staging directory and path
2790-
2791- /tmp/VMwareDnD is a staging directory used for DnD and CnP. It should be
2792- a regular directory, but malicious code or user may create the /tmp/VMwareDnD
2793- as a symbolic link which points elsewhere on the system. This may provide
2794- user access to user B's files.
2795+ Add RpcChannel_SendOneRawPriv()
2796
2797- Do not set the permission of the root directory if the root directory
2798- already exists and has the wrong permission. The permission of the directory
2799- must be 1777 if it is created by the VMToolsi. If not, then the directory
2800- has been created or modified by malicious code or user, so just cancel the
2801- host to guest DnD or CnP operation.
2802+ Send privileged guest RPC "guestStore.connect" with it after the
2803+ vmsvc RPC channel falls back to backdoor.
2804
2805-commit bfa5e5d27a8a96a9c71fbe581f3fe32dcd2e55fd
2806+commit e385c90808d527bce41259796badba094ad62a77
2807 Author: Oliver Kurth <okurth@vmware.com>
2808-Date: Tue Jan 29 14:03:19 2019 -0800
2809+Date: Mon Aug 5 11:21:59 2019 -0700
2810
2811- CONSTANT_EXPRESSION_RESULT in TimeUtil_StringToDate().
2812+ Add an example configuration tools.conf file for tools
2813
2814- Red Hat ran coverity scan on open-vm-tools and found an occurrence
2815- of CONSTANT_EXPRESSION_RESULT in TimeUtil_StringToDate().
2816+ This adds an example tools.conf file. Settings are shown in the
2817+ file with default values, but commented out with documentation.
2818
2819-commit 4bba1dcd28806eff0cb3795cbfeea32f91fb1c40
2820+commit decb8769e31e88f23b16b7a6ff3a1545a6259abe
2821 Author: Oliver Kurth <okurth@vmware.com>
2822-Date: Tue Jan 29 14:03:19 2019 -0800
2823+Date: Mon Aug 5 11:21:59 2019 -0700
2824
2825- Bail out vmtoolsd early when there are RPC errors.
2826+ [TOOLS] Fix dnd text from Linux guest
2827
2828- VMX state machine could give up quiescing operation for various
2829- reasons when vmtoolsd is busy performing necessary state transitions.
2830- Once VMX gives up quiescing operation, there is no point in
2831- vmtoolsd continuing with it. vmtoolsd should also give up the
2832- operation asap. vmtoolsd can detect VMX state machine change
2833- when it gets errors sending VMBACKUP_PROTOCOL_EVENT_SET RPC.
2834+ Gtk::Widget::drag_dest_find_target() returns different values from GDK_NONE
2835+ on Gtk2 and Gtk3.
2836
2837- RPC errors are only used as a trigger to abort the operation.
2838- We ignore the RPC errors that might occur after aborting the
2839- operation.
2840+ On Gtk2, it returns an empty string. It matches the existing code.
2841+ On Gtk3, it returns "NONE". The current logic breaks.
2842+
2843+ To overcome this issue, use Gdk::AtomString::to_cpp_type(GDK_NONE) to
2844+ replace the current empty string. This works on both Gtk2 and Gtk3.
2845
2846-commit 0cb7f7a903015e5e711fa6eb5b41748f797ce794
2847+commit 8d299b17ba81d47f7f561479a688ab1843f904c8
2848 Author: Oliver Kurth <okurth@vmware.com>
2849-Date: Tue Jan 29 14:03:19 2019 -0800
2850+Date: Mon Aug 5 11:21:59 2019 -0700
2851
2852- [10.3.10] Update copyright year to 2019.
2853+ Fix gcc 9.1 build error in vmblocktest.c
2854
2855- Update the copyright year to 2019 for ALL open-vm-tools destined files
2856- modified since the release of 10.3.5.
2857+ GCC 9.1 in Ubuntu eoan (19.10) failed to build open-vm-tools:
2858+ error: '__builtin_strncpy' specified bound 4096 equals destination
2859+ size [-Werror=stringop-truncation]
2860
2861-commit e569c47f85fa8520f0834148d6774c1cb66df68c
2862+commit e8d08518353295527e635f666c0d3146dcc698cb
2863 Author: Oliver Kurth <okurth@vmware.com>
2864-Date: Tue Jan 29 14:03:19 2019 -0800
2865+Date: Sat Jul 20 17:10:07 2019 -0700
2866
2867- Don't send a backup manifest when aborting a Linux quiesced snapshot.
2868-
2869- When taking a Linux quiesced snapshot, communication failures between
2870- VMX and VMTools may result in VMTools sending a genericManifest event
2871- message after the quiesced snapshot operation has been aborted. If
2872- this happens, VMX will send an error back to VMTools, which in turn
2873- causes VMTools not to send genericManifest messages on subsequent
2874- quiesced snapshots even if the host supports such messages.
2875+ version 11.0.0
2876+
2877+commit 82ef6f896c99212c9366e3e52d7767e86d9677c3
2878+Author: Oliver Kurth <okurth@vmware.com>
2879+Date: Sat Jul 20 17:03:42 2019 -0700
2880+
2881+ Fix the memory leak in procMgr library.
2882
2883- One aspect of the implementation that gives rise to this behavior is
2884- the use of the sync provider's snapshotDone function to undo a
2885- quiescing operation. Specifically, if VMTools aborts a quiesced
2886- snapshot when the file system is quiesced, the quiescing must be
2887- undone. Currently, this is handled by calling the sync provider's
2888- snapshotDone function. This is the same function that is called to
2889- complete the quiescing snapshot protocol when it is successful. In
2890- some respects this makes sense, since in either case snapshotDone
2891- unquiesces the file system. However, architecturally and conceptually,
2892- it seems useful to distinguish between the action to be taken in the
2893- successful case versus the aborting case. It's also useful to do so
2894- in practice, because the successful case sends the genericManifest
2895- event to notify the host there is a backup manifest file, while the
2896- aborting case should not do that.
2897+ In a specific code path, procCmdAbsPath attribute is ovewritten
2898+ with the new memory. This leads to a memory leak for the previously
2899+ allocated memory.
2900+
2901+commit 003ed9e082dd10c67aa022514ad0c662c7e1a6a4
2902+Author: Oliver Kurth <okurth@vmware.com>
2903+Date: Sat Jul 20 17:03:42 2019 -0700
2904+
2905+ GuestInfo: fix memory leak in GuestInfoGetPrimaryIP()
2906
2907- To address the issue, add an "undo" function for the Linux sync
2908- provider. The undo function is called instead of snapshotDone as
2909- part of aborting a quiesced snapshot in which the file system is
2910- quiesced at the time of the abort.
2911+ "ipstr" was not free'ed when it was not being used.
2912
2913-commit 81835cd72369b5b75fc5b0bed761f3b75cb7146b
2914+commit 3d60252dc25705841c4afb49e766be2bd7815acd
2915 Author: Oliver Kurth <okurth@vmware.com>
2916-Date: Tue Jan 29 14:03:18 2019 -0800
2917+Date: Sat Jul 20 17:03:42 2019 -0700
2918
2919- Special-case profile loading for StartProgram
2920+ Avoid emitting a trailing comma in the GuestInfoSendDiskInfoV1 JSON RPC
2921
2922- Keep the user's profile loaded for the life of the
2923- program, to avoid races where its unloaded too quickly.
2924+ Although currently accepted by the JSON library that we are using
2925+ in VMX, that superfluous comma is strictly invalid according to the
2926+ JSON standard - ECMA-404.
2927
2928-commit d3515adb2a1617dcde4b65a6a9ab72ee8624454b
2929+commit f65edaec32d2e1c7c14d69f4f2af669805cfd4b4
2930 Author: Oliver Kurth <okurth@vmware.com>
2931-Date: Tue Jan 29 14:03:18 2019 -0800
2932+Date: Sat Jul 20 17:03:42 2019 -0700
2933
2934- Changes to common source files not applicable to open-vm-tools.
2935+ [Tools/dndcp] Fix two coverity issues reported by a customer.
2936
2937-commit 4d3e3183bc04517cf75ab590a12e14224207eb6d
2938+commit 74fe39c2abac9da4d45188eec8b389be421f7c8f
2939 Author: Oliver Kurth <okurth@vmware.com>
2940-Date: Tue Jan 29 14:03:18 2019 -0800
2941+Date: Sat Jul 20 17:03:42 2019 -0700
2942
2943- Bump up the SYSIMAGE_VERSION for VMware tools 10.3.10
2944-
2945- The last released deploypkg version for 'VMware Tools' 10.3.5 is 8.4.1.
2946- Bumping up the CBS version to 8.4.10.
2947+ Add the SLEDGEHAMMER code name to the 11.0.0 release version defines.
2948
2949-commit 8f3630e77bcf647c22c40093bb37500f3032e578
2950+commit 0c6ad5edceca60dc05eb9f3b1ee6ac42dc0455ef
2951 Author: Oliver Kurth <okurth@vmware.com>
2952-Date: Tue Jan 29 14:03:18 2019 -0800
2953+Date: Wed Jul 3 14:28:56 2019 -0700
2954
2955- Deploypkg log files of linux should not be world readable.
2956+ Fix a Coverity issue reported in vgauth/serviceImpl/verify.c
2957
2958-commit 4470d99e5eaf19cea741e6fa6f46c72acd57b3e1
2959+commit 47c8f75e4516552615c070c6920633f7e8e572a0
2960 Author: Oliver Kurth <okurth@vmware.com>
2961-Date: Tue Jan 29 14:03:18 2019 -0800
2962+Date: Wed Jul 3 14:28:56 2019 -0700
2963
2964- General code clean-up.
2965+ Fix process command name for special linux processes.
2966
2967- bora/lib/misc/posixPosix.c:
2968- Treat local variables "len" consistently as "size_t" type in
2969- Posix_Getmntent_r()
2970+ While listing down the processes in a linux guest, the existing
2971+ procMgr library reads /proc/<PID>/cmdline file and parses the
2972+ content. While reading this, an assumption is made that there is
2973+ a null terminating character at the end of the file content.
2974+ This holds true for most of the processes. But for few special processes,
2975+ the cmdline file doesn't have the terminating null character.
2976
2977- bora-vmsoft/apps/toolbox-cmd/toolboxcmd-shrink.c:
2978- Improve readability of error handling logic in ShrinkDoWipeAndShrink()
2979- and remove another line of dead code.
2980+ Proper content from cmdline file:
2981
2982- bora-vmsoft/lib/procMgr/procMgrPosix.c:
2983- Recent discussions about setting "errno" to ENOENT when either
2984- getpwuid_r() or getpwnam_r() return 0 (success) if there is no passwd
2985- entry for the user have vacillated.
2986+ /usr/lib/systemd/systemd\0--switched-root\0--system\0--deserialize\021\0
2987+ /usr/sbin/vmtoolsd\0
2988+ sshd: root@pts/2\0\0\0
2989+
2990+ Example cmdline file where NUL terminator is missing:
2991
2992- Since none of the current callers of the routines in procMgrPosix.c
2993- query the contents of "errno", the current consensus is to simply log
2994- a warning message along with reason for the failure.
2995+ avahi-daemon: running [linux.local]
2996+ avahi-daemon: chroot helper
2997
2998-commit 5f3f6ccd3ad143d64f2927bd19791a6148e1e2ba
2999+commit 2660d40ca4f5beca0ba3a4c68a66f8c7dcf77a67
3000 Author: Oliver Kurth <okurth@vmware.com>
3001-Date: Tue Jan 29 14:03:18 2019 -0800
3002+Date: Wed Jul 3 14:28:56 2019 -0700
3003
3004- Fix NULL pointer dereference and remove three lines of dead code.
3005+ Fix the command name for few linux processes.
3006
3007- QbitLogic has run [Code]Ai on the open-vm-tools source code and
3008- and notified VMware of a potential NULL pointer reference and four
3009- pieces of dead code.
3010+ ProcMgr library publishes the 'command name' attribute for
3011+ each process while listing down all the processes. For doing this,
3012+ the commandline is first parsed from /proc/<PID>/cmdline file
3013+ and the part starting from the right-most '/' is considered as the
3014+ command name. This is OK only if we have an absolute path for the
3015+ command binary. Other wise, this may result in incorrect results.
3016
3017- See https://github.com/vmware/open-vm-tools/pull/247
3018+ For example:
3019+ sshd: root@pts/1
3020+ gdm-session-worker [pam/gdm-autologin]
3021
3022- bora-vmsoft/services/vmtoolsd/pluginMgr.c
3023- The proposed fix conditionally emitted a log message. That fix has
3024- been reworked to consistently emit a log message with conditional
3025- content.
3026+ Fixed the code to ignore the parsing if we do not have an absolute
3027+ path.
3028
3029- bora/lib/misc/posixPosix.c
3030- bora-vmsoft/apps/toolbox-cmd/toolboxcmd-shrink.c
3031- Remove one line of dead code from each source file.
3032+ Note: There are two ways how the command name is retrieved for each
3033+ process.
3034
3035- bora-vmsoft/lib/procMgr/procMgrPosix.c:
3036- Suggested dead code fix actually pointed to a bug where errno
3037- was not getting updated as intended.
3038+ 1. /proc/<PID>/cmdline is parsed.
3039
3040- bora-vmsoft/services/plugins/guestInfo/perfMonLinux.c:
3041- Suggested dead code is no longer dead; change not applicable.
3042+ If (1) fails for some reason, then
3043+
3044+ 2. /proc/<PID>/status is parsed.
3045+
3046+ There is no issue with (2). This changeset fixes the parsing issue only
3047+ with (1) approach mentioned above.
3048
3049-commit f10780bc3d7119d90bf72c0cf2f07066955d7d98
3050+commit 7aaf580b14f44a994100ede098e0ced5d60ba484
3051 Author: Oliver Kurth <okurth@vmware.com>
3052-Date: Tue Jan 29 14:03:18 2019 -0800
3053+Date: Wed Jul 3 14:28:56 2019 -0700
3054
3055- Bump VMware Tools version to 10.3.10 for the next scheduled update release
3056+ Add support for NVMe disks; IDE and SATA disk devices in 3.x Linux kernels
3057
3058- Set the VMware Tools version as TOOLS_VERSION_JACKHAMMER_UPDATE2 = 10.3.10
3059+ Support has been added for virtual disks attached to an NVMe
3060+ controller. The device "label" will provide the "nvme<n>" for the
3061+ controller. The disk unit is provided in the device "nsid" file.
3062+ An earlier implementation (Linux 2.6 kernels) provided the unit
3063+ number as the final digit group in the device node name.
3064+
3065+ The Linux 3.x kernel has some differences in the layout of IDE and
3066+ SATA disk devices in the sysfs filesystem. The differences from the
3067+ sysfs in a 2.6 Linux kernel are:
3068+ - The IDE "class" file and SATA "class" and "label" files are in a
3069+ different directory.
3070+ - IDE controller and SATA device nodes begin with "ata" where "host"
3071+ was used in earlier kernel sysfs filesystems.
3072+
3073+ GuestInfoGetDevClass() has been modfied to check in two possible
3074+ locations for the "class" file. The directory located will also
3075+ contain the "label" file for SCSI, SAS, and SATA disk devices.
3076+
3077+ GuestInfoGetIdeSataDev() has been modified to search for either
3078+ ata<n> or host<n> directories in the sysfs tree for the disk device.
3079
3080-commit f2ff192717375b95a6b7e278fb47dbb3d3bc56d1
3081+commit 193a5f93d6678b2ebfec1cf365a84bfd8533650d
3082 Author: Oliver Kurth <okurth@vmware.com>
3083-Date: Wed Nov 7 15:00:09 2018 -0800
3084+Date: Wed Jul 3 14:26:55 2019 -0700
3085
3086- release notes for 10.3.5
3087+ Common header file change not applicable to open-vm-tools.
3088
3089-commit 8f98dbc87304546cbb75756bbad8ba0dbc0221a4
3090+commit 2657373a9321ad4090af75d84beac00836170e27
3091 Author: Oliver Kurth <okurth@vmware.com>
3092-Date: Wed Nov 7 14:13:03 2018 -0800
3093+Date: Wed Jul 3 14:26:55 2019 -0700
3094
3095- add 10.3.5 changes to ChangeLog
3096-commit 583fc02dbee4ba88a20c67a0f5e5a9b023b551ea
3097+ Truncate oversize partition names
3098+
3099+ Truncate disk partition names if they are too large, rather than just
3100+ skipping all the disk information for the guest. Closes
3101+ https://github.com/vmware/open-vm-tools/issues/346 .
3102+
3103+commit 6b8ffb7199159ab3a306646bc572f6a83a8ce7f6
3104 Author: Oliver Kurth <okurth@vmware.com>
3105-Date: Tue Nov 6 17:14:40 2018 -0800
3106+Date: Wed Jul 3 14:26:55 2019 -0700
3107
3108- bump version and build number
3109+ Common header file change not applicable to open-vm-tools.
3110
3111-commit d51ec15038c43472e9bc48de7081b0954a122f97
3112+commit fe04b4263ae90af524fe51e124e206df737e974b
3113 Author: Oliver Kurth <okurth@vmware.com>
3114-Date: Tue Nov 6 17:13:04 2018 -0800
3115+Date: Wed Jul 3 14:26:55 2019 -0700
3116
3117- sync deploypkg files
3118+ Suppress possible NULL pointer deref in a debug message.
3119
3120-commit b4b07f53c71a83beed8fdc11f2dfeeb43aa20fda
3121+commit 130334ca6f1cf6d696b0fe36d54b83f1f7d7bc2e
3122 Author: Oliver Kurth <okurth@vmware.com>
3123-Date: Fri Oct 5 13:55:27 2018 -0700
3124+Date: Wed Jul 3 14:26:55 2019 -0700
3125
3126- Use bitwise AND operation while fetching current IOPL.
3127-
3128- Iopl_Get() was using logical AND operation which could result
3129- in wrong IOPL value. We should be using bitwise AND instead.
3130+ Common header file change not applicable to open-vm-tools.
3131
3132-commit 87593b29e5c337141be65e4430fb95a4f1741afb
3133+commit ace8b9e3c13a0b320835d36f569d2c7e5c6513a7
3134 Author: Oliver Kurth <okurth@vmware.com>
3135-Date: Fri Oct 5 13:55:27 2018 -0700
3136+Date: Wed Jul 3 14:26:55 2019 -0700
3137
3138- Optional override for short and long OS names sent from Tools
3139-
3140- Added support for customers to override the returned long and short OS
3141- names through the tools config file. If the setting is present, then names
3142- gathered by hostinfo will be ignored. The user is responsible for setting
3143- the appropriate names.
3144-
3145- The override will be ignored if the short-name setting is not present in
3146- tools.conf.
3147-
3148- An empty string will be sent for the long OS name if only the short-name
3149- setting is present.
3150-
3151- Appropriate warning msg will be generated in both cases.
3152-
3153- Example of the conf setting:
3154-
3155- [guestosinfo]
3156- short-name = centos6-64
3157- long-name = some long name
3158+ Changes to common header files not applicable to open-vm-tools.
3159
3160-commit b08cd0da457263f80e84ca95348c2a97cb7e22a5
3161+commit eda7db540bb048ac406e6624786c300cb17968c2
3162 Author: Oliver Kurth <okurth@vmware.com>
3163-Date: Mon Sep 17 16:41:19 2018 -0700
3164+Date: Wed Jul 3 14:26:55 2019 -0700
3165
3166- Hgfs Server Linux: fix the share permissions on a file rename or delete
3167-
3168- Coverity found that the argumeents to obtain the share permissions
3169- on a file rename were swapped. Even though they are tested together
3170- in an if statement which is not an issue, it could be in the future.
3171-
3172- Reverse arguments so the share read and write permissions are correct.
3173+ Common header file change not applicable to open-vm-tools.
3174
3175-commit bdde701699212ca7fb118f3a49a9bbc7fb06df68
3176+commit 7b17b7265ad31f2ed3dc6d6d28c5a4caf4c12e5c
3177 Author: Oliver Kurth <okurth@vmware.com>
3178-Date: Mon Sep 17 16:41:18 2018 -0700
3179+Date: Wed Jul 3 14:26:55 2019 -0700
3180
3181- Hgfs FUSE Client: fix missing pthread_mutex_unlock call
3182-
3183- Fix missing pthread_mutex_unlock call in HgfsSetAttrCache when
3184- updating the cached attributes on a file and a memory allocation
3185- fails.
3186+ Common header file change not applicable to open-vm-tools.
3187
3188-commit 01376aca4d4bee5efed9b4b2597d141722a7feb5
3189+commit 59d4eda2fc89e43ac092d82866c42c9692ebca68
3190 Author: Oliver Kurth <okurth@vmware.com>
3191-Date: Mon Sep 17 16:41:18 2018 -0700
3192+Date: Wed Jul 3 14:26:54 2019 -0700
3193
3194- Bump up the SYSIMAGE_VERSION for VMware Tools 10.3.5
3195+ Common header file change not applicable to open-vm-tools.
3196
3197-commit 7fc13e2b58dc91627d4ff78fd532b77898adf2d2
3198+commit 8fe237da4894488e9cb0fccdec1f0d8180998a24
3199 Author: Oliver Kurth <okurth@vmware.com>
3200-Date: Mon Sep 17 16:41:18 2018 -0700
3201+Date: Wed Jul 3 14:26:54 2019 -0700
3202
3203- Update the copyright year for OVT bundled files modified since 10.3.2
3204+ Common header file change not directly applicable to open-vm-tools.
3205
3206-commit c7a186e204cdff46b5e02bcb5208ef8979eaf261
3207+commit e266c0bb1879792f24b29d38af9f9f833475f228
3208 Author: Oliver Kurth <okurth@vmware.com>
3209-Date: Mon Sep 17 16:41:18 2018 -0700
3210+Date: Wed Jul 3 14:26:54 2019 -0700
3211
3212- Handle Linux kernel /proc FS uint32 type stat overflow when calculating
3213- tools rate stats.
3214+ Changes to common source files not directly applicable to open-vm-tools.
3215
3216- On both 32-bit and 64-bit Linux, tools always parses Linux kernel /proc
3217- FS stats as uint64 values. For rate stats, current - previous can handle
3218- uint64 type stat overflow, but not uint32 type.
3219+ Reduce malloc/free overheads in the VMX for HGFS over VMCI
3220
3221-commit 064d0a3458991f0c34a397664b6b5cd8cc00e5b3
3222+commit 9c30be3448c743e51718480543142bf833ea553a
3223 Author: Oliver Kurth <okurth@vmware.com>
3224-Date: Mon Sep 17 16:41:18 2018 -0700
3225+Date: Mon Jun 17 11:41:38 2019 -0700
3226
3227- nicinfo: skip loopback devices
3228+ copyPasteCompatX11.c code generating unnecessary Coverity warning
3229
3230- When libdnet isn't used, loopback devices were reported. This change
3231- skips these interfaces. Also skip interfaces that are down.
3232+ This patch aims to fix an issue found by Coverity Scan.
3233
3234- The interface was visible with vim-cmd, but not in the VC or
3235- ESX UI. It did not contain any IP addresses.
3236+ This issue is a False Positive, the outBuf is only freed in specific
3237+ scenario, so there is no 'BAD FREE'. But it's better to reconstruct the
3238+ related code to clear the SCA error.
3239
3240-commit 8979f11f78ef7fdbb51afa298896e06b4d874e5b
3241+commit a72b4c2513b8faf4e5b08b085583a43b1b6149a1
3242 Author: Oliver Kurth <okurth@vmware.com>
3243-Date: Mon Sep 17 16:41:18 2018 -0700
3244+Date: Mon Jun 17 11:41:38 2019 -0700
3245
3246- Allow only a single instance of vmusr when multiple users are logged into a VM
3247-
3248- When a vmusr process gets the "channel conflict" error while attempting
3249- to open the toolbox-dnd channel, a channel reset is triggered. That
3250- reset results in the channel being restarted and a subsequent conflict
3251- and reset occurs - every second until the channel becomes available.
3252-
3253- For *nix guests:
3254- The fix is making use of the repetitive channel resets where the only
3255- RpcIn message received is a "reset" to catch this channel "permanently"
3256- unavailable state. If other RpcIn messages are received, a channel
3257- is considered to be working and the cumulative error count is cleared..
3258-
3259- lib/rpcin/rpcin.c:
3260- - struct RpcIn: Added error status boolean and callback function to
3261- notify the dependent layer that a channel error has been
3262- resolved.
3263- - RpcInLoop(): If a non "reset" message is received, clear any channel
3264- error status. This will also notify the dependent layer
3265- that the channel is functioning.
3266- - RpcIn_start(): Added additional argument for new callback; NULL if
3267- not needed.
3268-
3269- lib/rpcChannel/rpcChannel.c:
3270- - struct rpcChannelInt:
3271- - Renamed "rpcErrorCount" to "rpcResetErrorCount" since it is actually
3272- a count of the consecutive channel reset failures and not a count
3273- of RpcChannel errors.
3274- - Added counter "rpcFailureCount" for the cumulative channel errors.
3275- - Added "rpcFailureCb" for optional callback to notify the app of a
3276- "permanent" channel failure.
3277- - New function RpcChannelClearError() for RpcIn to notify when the
3278- channel is working; to clear the rpcFailureCount .
3279- - RpcChannel_Setup() - added two arguments for (1) an optional function
3280- to be called when there is a channel failure
3281- and (2) a failure count threshold.
3282- These optional values are stored in the
3283- RpcChannel structure being created.
3284- - RpcChannelError(): Added logic to notify the calling app if the error
3285- threshold has been reached and notify the app if a
3286- callback was provided. A zero threshold signifies
3287- the single vmusr limit should not be enforced.
3288- (fix disable switch).
3289-
3290- services/vmtoolsd/mainLoop.c:
3291- - New function ToolsCore_GetVmusrLimit() to retrieve the channel error
3292- threshold default or over-ride from tools.conf.
3293+ Common header file change not applicable to open-vm-tools.
3294+
3295+commit 680c9d4a412a099efde6382a0a4e5f300bc4fc4e
3296+Author: Oliver Kurth <okurth@vmware.com>
3297+Date: Mon Jun 17 11:41:38 2019 -0700
3298+
3299+ linuxDeployment.c: Suppress the telinit error if the first telinit commands
3300+ has made VM reboot.
3301
3302- services/vmtoolsd/toolsRpc.c:
3303- - Added ToolsCoreAppChannelFail(): Callback for "permanent" channel
3304- connection failure. A warning is logged based on whether another
3305- "vmtoolsd -n vmusr" is running or not and the process is terminated.
3306- On Mac OS, the process is terminated with exit(1) as an indication
3307- to launchd that the vmusr process should not automatically be
3308- restarted.
3309+ The code executes '/sbin/telinit 6' repeatedly to reboot VM. VM will be
3310+ rebooting if the telinit command executed successfully(exitcode==0).
3311+ Observed the repeated telinit command might get error(exitcode==1) on some
3312+ GOSes, ex: Ubuntu18.04, RHEL7.4/7.5 and Fedora 29.
3313+ Observed no such error on older GOSes, ex: Ubuntu14.04, RHEL6.6
3314
3315- The current implementation uses the error callback only for the vmusr
3316- server on Linux (*nix).
3317- The default channel error limit is 5 (approx. 5 second), but is user
3318- configurable in tools.conf.
3319+ The error telinit log is confusing, actually it does NOT mean customization
3320+ failed.
3321
3322- [vmusr]
3323- maxChannelAttempts = n # where allowed n = 0, 3-15
3324+ This change does NOT log telinit error, and returns deployPkg status to
3325+ make sure the log is consistent with customization result when the first
3326+ 'telinit 6' succeeded but one of the following 'telinit 6' command failed.
3327
3328- When "maxChannelAttempts = 0" is used, the restriction to a single
3329- running vmusr process is not enforced. The existing behavior is
3330- restored with all the accompanying VMX log spew. This is essentially
3331- a user configurable feature disablement switch.
3332+ The following actions are unchanged with or without this change:
3333+ 1. log telinit error, stop loop and exit 127 if the first 'telinit 6' fails.
3334+ 2. repeatedly execute 'telinit 6' if previous one executed successfully
3335+ (exitcode==0).
3336
3337-commit 0c34a86b232a9904941f825ce8b16320cadaace1
3338+commit 37d8b16e2cc1a21919cb6974c2a87071a345e232
3339 Author: Oliver Kurth <okurth@vmware.com>
3340-Date: Mon Sep 17 16:41:17 2018 -0700
3341+Date: Mon Jun 17 11:41:37 2019 -0700
3342
3343- Changes to common header files not directly applicable to open-vm-tools
3344-
3345- VGAuth Windows: fix file properties product version and file version
3346-
3347- Product name of the VGAuth binaries are set to VMware Workstation and
3348- the Product version set to experimental (e.x.p).
3349-
3350- Experimental version has the e.x.p build number in the Product Version
3351- field of each of the shipped binaries. Now that we are WHQL signing a DLL too
3352- for security it does make sense for the feature to use an official version.
3353+ Common header file change not applicable to open-vm-tools.
3354+
3355+commit 8c87c985179a7a152c9a36aa83edd2b02fc7894d
3356+Author: Oliver Kurth <okurth@vmware.com>
3357+Date: Mon Jun 17 11:41:37 2019 -0700
3358+
3359+ Common header file change not applicable to open-vm-tools.
3360+
3361+commit 9e1d3be7c075e8ca4c7ff07b8dadeab8a14953b3
3362+Author: Oliver Kurth <okurth@vmware.com>
3363+Date: Mon Jun 17 11:41:37 2019 -0700
3364+
3365+ HgfsServer: Fix coverity issue - uninitialized variable "requestId"
3366
3367- This changes the Product name and version fields from
3368- Product name -> VMware Workstation
3369- Product version -> e.x.p build-4013326
3370+ Fix coverity uninitialized variable "requestId" by zeroing it
3371+ in HgfsServerGetRequest before passing to the request packet
3372+ HgfsUnpackPacketParams extraction function which will use it
3373+ in a log message.
3374
3375- to
3376- Product name -> VMware Guest Authentication
3377- Product version -> 1.0.0 build-4013326
3378+ Also moved an assert useful for testing protocol changes which was
3379+ incorrect in its placement.
3380
3381-commit 5f5a7f4a0984ee35ce79d736426a5335c91da332
3382+commit d2213fb32a1357305e72cbd6856f5e5ea9e151da
3383 Author: Oliver Kurth <okurth@vmware.com>
3384-Date: Fri Sep 7 15:53:28 2018 -0700
3385+Date: Mon Jun 17 11:41:37 2019 -0700
3386
3387- Remove vmxnet and vmxnet3 drivers from FreeBSD builds and open-vm-tools
3388-
3389- The vmxnet (version 1) network driver is not supported by any currently
3390- supported VMware virtualization platform. Removing the FreeBSD
3391- specific vmxnet source and deleting the vmxnet.ko driver build from
3392- the tools and the open-vm-tools builds.
3393+ Changes to common header files not applicable to open-vm-tools.
3394
3395- FreeBSD has their own vmxnet3 network driver based on community source
3396- and has never made use of the vmxnet3 source code or drivers from
3397- VMware. Removing the unneeded FreeBSD vmxnet3 source and builds
3398+ Remove checks for GCC 4.1 in xsave, xrstor, etc. instructions
3399
3400-commit 1a413064fee53ac3e334e96c546886e60724d07a
3401+commit 83dbe8ed5bf6f9e770e22c670c5617bc93e48e55
3402 Author: Oliver Kurth <okurth@vmware.com>
3403-Date: Fri Sep 7 15:53:27 2018 -0700
3404+Date: Mon Jun 17 11:41:37 2019 -0700
3405
3406- Update SSL configuration with more secure settings.
3407+ Determine Linux OS disk devices associated with mounted filesystems.
3408
3409- Due to SSL issues in the past, The preference is to have default
3410- settings to be more secure than compatible. This change mainly
3411- inherits the default settings from ssl.c.
3412+ For each filesystem for which disk guestInfo is currently collected,
3413+ determine the virtual hardware device being used. This is currently
3414+ represented as <cntrl class><cntrl #>:<device #>, eg. scsi0:0,
3415+ scsi1:0, ide0:0 or sata1:4 and matches the virtual device label seen
3416+ in VMX.
3417+
3418+ A Linux logical volume based filesystem can reside on multiple disks.
3419+ In order to handle LVMs, the disk devices for each filesystem are
3420+ maintained as a variable array of disk device names.
3421+ For Linux guests, disk device names are passed as a json array.
3422
3423-commit 450aca9f244b5e56bcef130df1a06137fd1f07e0
3424+commit 9bfd01b26e7d22aa847d6282e9b814b05a41e80e
3425 Author: Oliver Kurth <okurth@vmware.com>
3426-Date: Fri Sep 7 15:53:27 2018 -0700
3427+Date: Mon Jun 17 11:41:37 2019 -0700
3428
3429- Add virbr* interfaces on RHEL to the default exclude-nics.
3430+ Common header file change not applicable to open-vm-tools.
3431
3432-commit 5a6e8bc0ef8af2eedbbc4dc1973cb7fe18afa939
3433+commit f456a5938662175b914ffcb53c6284835476268f
3434 Author: Oliver Kurth <okurth@vmware.com>
3435-Date: Fri Sep 7 15:53:27 2018 -0700
3436+Date: Mon Jun 17 11:41:37 2019 -0700
3437
3438- Fix a gcc-8 compiler warning in lib/misc/vthreadBase.c
3439+ Fix 'Using uninitialized value' issue reported by Coverity.
3440
3441- gcc-8 generates a stringop-truncation warning when it's possible
3442- for strncpy to exclude the trailing nul. The code was fine, we never
3443- touch the last byte in the buffer and it's a static, but explicitly
3444- set a nul at the end of the buffer so gcc sees it.
3445+ * In a error code path, 'exitCode' variable is used without
3446+ any initialization. This issue was reported by the Coverity.
3447+ Fixed it by initializing the 'exitCode' to -1.
3448
3449- This is needed for open-vm-tools to build on Suse Tumbleweed.
3450+ * While fixing this, moved the variables to the if block where
3451+ they are acutally used.
3452
3453-commit 5200ba3a770463e5c6a9e9d7e7a6a949857332ec
3454+commit 2b3de798522314545b00297f1ece86b223dbeb6f
3455 Author: Oliver Kurth <okurth@vmware.com>
3456-Date: Fri Sep 7 15:53:27 2018 -0700
3457+Date: Mon Jun 17 11:41:36 2019 -0700
3458
3459- Return proper vix error code when guest op VIX_COMMAND_DELETE_GUEST_DIRECTORY_EX fails.
3460+ Common header file change not applicable to open-vm-tools.
3461
3462-commit 8ffda7dbae4b916b28e3f903554bc37db1d5f974
3463+commit 7cf4c83d4a0b580209184bb4d5ac6c26cd5734f4
3464 Author: Oliver Kurth <okurth@vmware.com>
3465-Date: Fri Sep 7 15:53:27 2018 -0700
3466+Date: Mon Jun 17 11:41:36 2019 -0700
3467
3468- Make Tools logfiles readable only by owner and root
3469+ Fix leak in error path reported by Coverity.
3470
3471-commit b0e2fab2787fbc511d240c4ce0f52a74b55152fe
3472+commit 1b32002d84c1dbb6dbe34586c04b84d26224c5ee
3473 Author: Oliver Kurth <okurth@vmware.com>
3474-Date: Fri Sep 7 15:53:27 2018 -0700
3475+Date: Mon Jun 17 11:41:36 2019 -0700
3476
3477- Reduce quiesced snapshot warning messages when running on older hosts.
3478-
3479- vSphere 6.7 added a new interface on the host side that allows tools
3480- to send a "generic" backup manifest during a quiesced snapshot on
3481- Linux guests. VMTools 10.2.0 or later will try to send the manifest
3482- file and if the host is unable to field it, then VMTools logs this
3483- information and continues with the quiesced snapshot in the older
3484- fashion. This change reduces the logging that is done in this case.
3485+ Common source file change not directly applicable to open-vm-tools.
3486
3487-commit a4b4c338f1202d161e8cad2eb7cf78d44f2fd302
3488+commit 5260daab25ee9afdd5267531516b45f5006d57d1
3489 Author: Oliver Kurth <okurth@vmware.com>
3490-Date: Fri Sep 7 15:53:27 2018 -0700
3491+Date: Mon Jun 17 11:41:36 2019 -0700
3492
3493- Common source file change not directly applicable to open-vm-tools
3494+ Improvements for ProcMgr library.
3495
3496- Verify existence of the returned path, retry the guest OP
3497- CreateTemporaryFileInGuest/CreateTemporaryDirectoryInGuest using system
3498- temp folder if the path disappears.
3499+ * This changeset fixes various issues related to ProcMgr library.
3500+
3501+ == Retrieve the absolute path of the image for each process ==
3502+ * When listing down the processes, it is useful to retrieve the
3503+ absolute path of the process binary.
3504+
3505+ === For Linux ===:
3506+ * In /proc filesystem, /proc/{PID}/exe is a symlink to the binary
3507+ and we can make use of it to figure out the absolute path.
3508+
3509+ * If /proc/{PID}/exe is not a valid symlink, then the 'cmdline'
3510+ is parsed and aboslute path is calculated accordingly.
3511+
3512+ * Note: This changeset tries its best to figure out the absolute path.
3513+ If it can't, then the attribute is set to NULL.
3514+
3515+ == Misc issues fixed. ==
3516+ === Linux ===
3517+ * Fixed a memory leak with 'procCmdName' while looping through the
3518+ /proc/ directory entries.
3519+
3520+ * Fixed another memory leak with cmdLineTemp and cmdStatTemp variables
3521+ while listing down the processes in linux guests.
3522+
3523+ * In few cases, /proc/{PID}/cmdline file contains multiple NUL
3524+ characters at the end. In that case, the existing code converts them
3525+ into 'whitespaces'. Fixed the code to chop of all the trailing
3526+ whitespaces in the command line.
3527
3528-commit b6c450d123141a752bd4805263b7d476f5b1f26b
3529+commit ffdf5a69fa3654dc3a16bf9951171290f48561b8
3530 Author: Oliver Kurth <okurth@vmware.com>
3531-Date: Fri Sep 7 15:53:27 2018 -0700
3532+Date: Mon Jun 17 11:41:35 2019 -0700
3533
3534- Fix coverity complaint; not a real bug
3535+ Skip loading/unloading user profile for VMXI_HGFS_SEND_PACKET_COMMAND.
3536+
3537+ This command is used repeatedly to transfer file to/from the guest.
3538
3539-commit 23bd37544bb9ae4069002d73cb1c1b40e221d36a
3540+commit e858e40d2beb08880e62ccac3f9dcf3661f3e093
3541 Author: Oliver Kurth <okurth@vmware.com>
3542-Date: Fri Sep 7 15:53:27 2018 -0700
3543+Date: Mon Jun 17 11:41:35 2019 -0700
3544
3545- Common source file change not directly applicable to open-vm-tools.
3546+ Common header file change not applicable to open-vm-tools.
3547
3548-commit c2dd430ea5c8c9309700d25548513469dae68c9b
3549+commit 653248aaff38309a1660f84a347b7eff70e64701
3550 Author: Oliver Kurth <okurth@vmware.com>
3551-Date: Fri Sep 7 15:53:26 2018 -0700
3552+Date: Mon Jun 17 11:41:35 2019 -0700
3553
3554- Disable hgfsServer plugin when not running in a VMware VM.
3555-
3556- VmCheck_GetVersion() accesses Backdoor in an unsafe manner
3557- which is not expected to work on non-VMware environments
3558- including physical machines. So, we need to make sure that
3559- VmCheck_GetVersion() is called only when we are running in
3560- a VMware VM.
3561+ Common header file change not applicable to open-vm-tools.
3562
3563-commit 31a60ab3529a8dad8d602a524d194013d90abeec
3564+commit 2ca144aceda2bae479f3b67eb0d60e4ef7e439dc
3565 Author: Oliver Kurth <okurth@vmware.com>
3566-Date: Fri Sep 7 15:53:26 2018 -0700
3567+Date: Mon Jun 17 11:41:35 2019 -0700
3568
3569- Expose more guest stats for vROPS to report the exact physical memory
3570- stats as the guest OS UI does.
3571-
3572- Windows:
3573- guest.mem.modifiedPages (Win32_PerfRawData_PerfOS_Memory#ModifiedPageListBytes)
3574- guest.mem.standby.core (Win32_PerfRawData_PerfOS_Memory#StandbyCacheCoreBytes)
3575- guest.mem.standby.normal (Win32_PerfRawData_PerfOS_Memory#StandbyCacheNormalPriorityBytes)
3576- guest.mem.standby.reserve (Win32_PerfRawData_PerfOS_Memory#StandbyCacheReserveBytes)
3577-
3578- Linux:
3579- guest.mem.total (/proc/meminfo#MemTotal)
3580- guest.mem.buffers (/proc/meminfo#Buffers)
3581- guest.mem.cached (/proc/meminfo#Cached)
3582- guest.mem.slabReclaim (/proc/meminfo#SReclaimable)
3583- guest.mem.available (/proc/meminfo#MemAvailable since Linux 3.14, emulated by VMTools for kernels 2.6.27+)
3584+ Common header file change not applicable to open-vm-tools.
3585
3586-commit 0b01aefe3ee960c6035863bcf4fd7e2ff654b99b
3587+commit 3583ad84072c618064dfea742faa763b5f8207f0
3588 Author: Oliver Kurth <okurth@vmware.com>
3589-Date: Fri Sep 7 15:53:26 2018 -0700
3590+Date: Mon Jun 17 11:41:35 2019 -0700
3591
3592- Update the tools version to 10.3.5
3593-
3594- Set the tools version in vm_tools_version.h to be
3595- TOOLS_VERSION_JACKHAMMER_UPDATE1 = 10.3.5.
3596+ Common header file change not applicable to open-vm-tools.
3597+
3598+commit 4e06bc447106be090fefdb6ea057482152390d73
3599+Author: Oliver Kurth <okurth@vmware.com>
3600+Date: Mon Jun 17 11:41:33 2019 -0700
3601+
3602+ Common header file change not applicable to open-vm-tools.
3603
3604-commit 2147df6aabe639fc5ff423ed791a8e7f02bf8d0a
3605+commit be8b98cda2d3149966b73d91cc76e77bf19d8228
3606 Author: Oliver Kurth <okurth@vmware.com>
3607-Date: Fri Jul 13 11:54:23 2018 -0700
3608+Date: Mon Jun 3 13:39:45 2019 -0700
3609+
3610+ Common source file change not applicable to open-vm-tools.
3611
3612- prepare for 10.3.0 release
3613-commit a30d7aaa4d10fbce4b7d262487fffaf1dc32d949
3614+commit 61c51b4e4ac091f066e5e0efa22cc39d00b05d6d
3615 Author: Oliver Kurth <okurth@vmware.com>
3616-Date: Fri Jul 6 14:31:55 2018 -0700
3617+Date: Mon Jun 3 13:39:45 2019 -0700
3618
3619- Common source file change, not directly applicable to open-vm-tools.
3620+ Fix memory leak in SNEBuildHash function.
3621
3622- Enforce monotonic behavior for the value returned by times() on Mac.
3623+ In a specific code path, if a key already exists in the hashtable,
3624+ the memory allocated for 'value' variable is not being freed. This
3625+ leads to a memory leak. Fixed.
3626
3627-commit 12e5559e4dcf3968dd45131077b68364578f3bef
3628+commit 0d5e8c618131e3899f3c30c91722e1df4e1162e9
3629 Author: Oliver Kurth <okurth@vmware.com>
3630-Date: Fri Jul 6 14:31:55 2018 -0700
3631+Date: Mon Jun 3 13:39:44 2019 -0700
3632
3633- Update the Tools-10.3.0 OSL.
3634+ Common header file change not applicable to open-vm-tools.
3635+
3636+commit f37292f0a8524783888d55f57fa30bb828e2408b
3637+Author: Oliver Kurth <okurth@vmware.com>
3638+Date: Mon Jun 3 13:39:44 2019 -0700
3639+
3640+ Crash during File_WalkDirectoryNext
3641
3642- Update the Tools-10.3.0 open source license files.
3643+ In the rewrite of File_WalkDirectoryNext, a bug was introduced in the
3644+ invalid Unicode path. Invalid Unicode occurs very rarely... and the
3645+ bug finally turned up. Fix this... the bug is rather obvious.
3646
3647-commit c80bb3fc7960bc78a6d39c89b6952218a401b0cf
3648+commit 1749604dc3481d0cc670e97945b915821c1039d3
3649 Author: Oliver Kurth <okurth@vmware.com>
3650-Date: Fri Jul 6 14:31:55 2018 -0700
3651+Date: Mon Jun 3 13:39:44 2019 -0700
3652
3653- [tools-plugin] Potential solution for reported desktopEvent crash
3654+ Fix asianux identification.
3655
3656- On several distros like RHEL, CentOS and Fedora, plugin desktopEvents.so
3657- crashes have been reported. However, neither development or QE can
3658- reproduce this issue in local environments.
3659+ Add asianux to distroArray and change how asianux releases 7 and 8
3660+ are identified.
3661
3662- The XFetchName document states that it may generate BadWindow error. That
3663- means that the value for a Window argument does not name a defined Window.
3664- X FAQ also suggests handling badwindow error after finding it. Since
3665- the window does not exist when XFetchName is run on it, the name is not
3666- needed. Suppress this error to avoid a crash.
3667+ This came in as a pull request on github for open-vm-tools:
3668+ https://github.com/vmware/open-vm-tools/pull/325 . Apparently
3669+ the OS identification in /etc/asianux-release changed with Asianux
3670+ 7, and as a result tools does not identify it correctly.
3671+
3672+commit 19969734d2a64e52cccf8f04669b55ad13f9c61c
3673+Author: Oliver Kurth <okurth@vmware.com>
3674+Date: Mon Jun 3 13:39:44 2019 -0700
3675+
3676+ Fallback to /proc/mounts.
3677
3678- After grabbing the X server, use XSetErrorHandler to temporarily define
3679- a local error handler to intercept and cleanly handle any BadWindow
3680- errors. XSetErrorHandler returns the current error handler, so it is
3681- straightforward to reinstate GDK's original handler.
3682+ Use /proc/mounts on systems where /etc/mtab may not be there.
3683+ This change is targeted for guestInfo reporting at the moment.
3684
3685-commit 6172812c021469704c51817693c6c8f6bf226509
3686+commit f78a6801a8ec0f549fc3aa3817215f91cf6607af
3687 Author: Oliver Kurth <okurth@vmware.com>
3688-Date: Fri Jul 6 14:31:55 2018 -0700
3689+Date: Mon Jun 3 13:39:44 2019 -0700
3690
3691- Remove the new guest metrics feature switch, permanently enabling the
3692- collection of new guest metrics for vROps..
3693+ Common source file change not applicable to open-vm-tools.
3694
3695-commit 6e6285ec690a13ff8ba894ee463a5aa0fd034269
3696+commit e3f8ffec4a1de47cb62e4d8b2ba175a03da13246
3697 Author: Oliver Kurth <okurth@vmware.com>
3698-Date: Tue Jun 19 11:07:46 2018 -0700
3699+Date: Mon Jun 3 13:39:44 2019 -0700
3700
3701- Previous change to configure.ac and vmtools.m4 caused a regression
3702-
3703- Backing out of 10.3.0.
3704+ Common source file change not directly applicable to open-vm-tools.
3705
3706-commit 699cda01fab8b1ad8a1e912d650aa92f7ffdf0e6
3707+commit 70596395cf892d07321ddd9ee8f947c06973e565
3708 Author: Oliver Kurth <okurth@vmware.com>
3709-Date: Tue Jun 19 11:07:46 2018 -0700
3710+Date: Mon Jun 3 13:39:44 2019 -0700
3711
3712- [OVT] Update copyright year to 2018 for few files.
3713-
3714- Updated the copyright year to 2018 for few files changed in the last
3715- few days.
3716+ Common header file change not applicable to open-vm-tools.
3717
3718-commit cecbaf6b16f5fd1ecbfe4419310352353b047ba2
3719+commit a652f6e7c2c14310e2f6f030660b73e48aeeba80
3720 Author: Oliver Kurth <okurth@vmware.com>
3721-Date: Tue Jun 19 11:07:46 2018 -0700
3722+Date: Mon Jun 3 13:39:44 2019 -0700
3723
3724- open-vm-tools: use AC_CHECK_TOOL for pkg-config
3725+ Common source file change not directly applicable to open-vm-tools.
3726+
3727+commit c209a5619fa74f6b76171420c57fd65303331a0f
3728+Author: Oliver Kurth <okurth@vmware.com>
3729+Date: Mon Jun 3 13:39:44 2019 -0700
3730+
3731+ Update to common source code; does not affect open-vm-tools.
3732
3733- AC_CHECK_TOOL honors the --host setting to configure, and searches
3734- for tools with the cross compile prefix thus allowing for cross
3735- compile specific tools.
3736+ Allow an asyncWebSocket to connect through an existing socket descriptor
3737
3738- Fixes issue #26 in github.
3739+ Because Windows does not allow unprivileged processes to specify
3740+ DSCP (formerly ToS) values on TCP traffic, in order to support
3741+ DSCP for Blast WebSockets we must obtain a preconfigured socket
3742+ descriptor from a privileged process and then build the WebSocket
3743+ connection over that socket.
3744+
3745+ This changeset extends the asyncWebSocket API by adding a Connect
3746+ function that can accept and use an existing socket descriptor in
3747+ addition to the usual collection of WebSocket Connect parameters.
3748+
3749+ Because the asyncWebSocket is built over an asyncTCPSocket, this
3750+ change ripples down into the asyncTCPSocket API which also gets a
3751+ new Connect variant with a socket descriptor parameter.
3752+
3753+ To avoid duplicating existing logic, the old Connect variants
3754+ are modified to do their work by invoking the new API with
3755+ a distinguished socket descriptor value of -1. This value
3756+ indicates that no existing socket descriptor is provided and
3757+ that a new socket should be created and used for the connection.
3758+
3759+ In this changeset, passing in an existing socket is supported
3760+ only on the Windows platform. The feature is not required on
3761+ other platforms, where unprivileged processes are permitted to
3762+ define DSCP values for their connections. Attempting to create
3763+ a connection over an existing socket on other platforms will
3764+ result in a Connect failure.
3765
3766-commit f2c8d02161569c96ac452f9d1063756d133562ba
3767+commit 20e8a3d4213019202241d766ba3c7c660c4b74c2
3768 Author: Oliver Kurth <okurth@vmware.com>
3769-Date: Tue Jun 19 11:07:45 2018 -0700
3770+Date: Mon Jun 3 13:39:44 2019 -0700
3771
3772- open-vm-tools: build dndcp with thread libs
3773+ Round out Log functions to all levels
3774
3775- Recent changes in the dndcp plugin made it necessary to make sure that
3776- it links against pthread libs.
3777+ Logs would be measurably more useful for debugging if the available
3778+ levels were used correctly and consistently. As a step towards
3779+ encouraging such use, define Log_Warning() and Log_Info() as synonyms
3780+ for Warning() and Log() (which, for historical reasons, are not
3781+ declared in log.h). Also remove all the conflicting private definitions.
3782
3783-commit 99df5712ba7b8910c3db138c64aab6957f31c914
3784+commit e45c4e3da624187d83f25681cf25b67ae059b6ed
3785 Author: Oliver Kurth <okurth@vmware.com>
3786-Date: Tue Jun 19 11:07:45 2018 -0700
3787+Date: Mon Jun 3 13:39:44 2019 -0700
3788
3789- Clipboard content on the host gets loaded to tmp on Linux guest with a right click on Guest
3790-
3791- Root Cause:
3792- Dndcp plugin creates a sub thread to monitor if there is other application
3793- access the specific file. The root cause for this bug is the main thread
3794- doesn't update its field before wakeup the sub thread, this cause the sub
3795- thread get a wrong value.
3796-
3797- Solution:
3798- Main thread should update the field before wakeup the sub thread.
3799+ Common header file change not applicable to open-vm-tools.
3800
3801-commit 99af79200f91c246580197b5698995fba4dc47af
3802+commit 94ffa684475ea998347b4c6e25626d099eb8315c
3803 Author: Oliver Kurth <okurth@vmware.com>
3804-Date: Tue Jun 19 11:07:45 2018 -0700
3805+Date: Mon Jun 3 13:39:44 2019 -0700
3806
3807- open-vm-tools: build for FreeBSD fails in fakeMouseWayland
3808-
3809- Root Cause:
3810- In the file fakeMouseWayland.cpp, several Linux related header files
3811- are included:
3812- <linux/input.h>
3813- <linux/ioctl.h>
3814- <linux/uinput.h>
3815-
3816- These header files do not exist for FreeBSD and Solaris.
3817+ Linux DeployPkg configurable timeout.
3818
3819- Solution:
3820- Lib fakeMouse is not needed by FreeBSD and Solaris, so update the makefile
3821- to build the fakemouse related code only on Linux.
3822+ Update to descriptive comments for function DeployPkg_SetProcessTimeout().
3823
3824-commit 104cab14e08b93a2525992e09f0d13ff26d52d9d
3825+commit 4bd043870ec94332aa8b3794449a2144847cad33
3826 Author: Oliver Kurth <okurth@vmware.com>
3827-Date: Tue Jun 19 11:07:45 2018 -0700
3828+Date: Mon Jun 3 13:39:44 2019 -0700
3829
3830- Use "/var/run" or "/run" instead of "/tmp" in Linux guest for imc package copy
3831-
3832- 1. check if /var/run is a directory in VM
3833- 2. if Yes, use /var/run/XXXXXX
3834- 3. check if /run is a directory in VM
3835- 4. if Yes, use /run/XXXXXX
3836- 5. if both No, use /tmp/XXXXXX as before
3837+ Common header file change not applicable to open-vm-tools.
3838
3839-commit 8f93d803066032a738b9d9a6990e32ed17b589e1
3840+commit 46cb6aa361cc8b1d287e3b9b77bf86819b4b1fc5
3841 Author: Oliver Kurth <okurth@vmware.com>
3842-Date: Tue Jun 19 11:07:45 2018 -0700
3843+Date: Wed May 22 13:09:37 2019 -0700
3844
3845- Build open-vm-tools with xmlsec1 by default.
3846-
3847- Build open-vm-tools with xmlsec1 by default, rather than with
3848- xml-security-c as is done currently. This requires modifications
3849- to configure.ac to change the default for use_xmlsec1, plus
3850- modifications to bora-vmsoft/install/Source/tools-pkg.make to
3851- initialize flags for xmlsec1 and xml2 now needed by the OVT build
3852- that is done during tools builds.
3853-
3854- Another change that surfaced during this was that the symbol that
3855- configure checks for the xmlsec library was wrong. It should be
3856- xmlSecCheckVersionExt rather than xmlSecCheckVersion. The latter
3857- is a header-defined macro but not a library symbol.
3858+ Fix [RH Covscan] Coverity reported memory leaks in toolboxcmd-stat.c.
3859
3860-commit 7313fdc5b2b14ac83340b2e59752b934494c2ae9
3861+commit d0f0af3e62d065492b29791556c39c27eb97c751
3862 Author: Oliver Kurth <okurth@vmware.com>
3863-Date: Tue Jun 19 11:07:45 2018 -0700
3864+Date: Wed May 22 13:09:37 2019 -0700
3865
3866- [Wayland Copy & Paste] Part2: Uses VMBlock notification mechanism for Copy & Paste
3867-
3868- This patch is part of the new feature for Workstation 15: \[P0\] Wayland
3869- support in Linux guest - Copy & Paste.
3870-
3871- In the first patch, the notification mechanism is added to the VMBlock module.
3872- In this patch, the notification mechanism is used,
3873+ Common header file change not applicable to open-vm-tools.
3874
3875-commit c04b9987786901f544c4df04f7701b48ac8f6475
3876+commit 873db0841a17a530cabe6b6e6e473647da685c17
3877 Author: Oliver Kurth <okurth@vmware.com>
3878-Date: Tue Jun 19 11:07:45 2018 -0700
3879+Date: Wed May 22 13:09:37 2019 -0700
3880
3881- [Wayland Copy & Paste] Part1: Add notification mechanism to the VMBlock module
3882-
3883- This patch is part of the new feature for Workstation 15: [P0] Wayland support
3884- in Linux guest - Copy & Paste.
3885-
3886- In the implementation of current VMTools, there is a restriction, in the first
3887- second after grab into the guest, the CopyPasteUIX11::LocalGetFileRequestCB,
3888- which is a callback from a file paste request from another guest application
3889- and begins copying the files from host to guest and return the file list,
3890- will return none directly.
3891-
3892- The Wayland file explorer will request the content in the clipboard after the
3893- user clicks on the file explorer, and the request will get nothing since the
3894- restriction in the VMTools, so the following ‘Paste’ operation will fail.
3895-
3896- Solution:
3897- This solution is only used for the Linux guest with Wayland. The behavior
3898- for Linux guest with X11 will not change.
3899-
3900- The restriction, the CopyPasteUIX11::LocalGetFileRequestCB returns directly
3901- in the first second after grab into the guest, will be removed.
3902-
3903- And, the notification mechanism will be added into the VM block file system.
3904- This mechanism is similar with the inotify module.
3905-
3906- Take the VMBlock Fuse File System as an example, currently, the mount point contains below contents:
3907-
3908- * /blockdir/
3909-
3910- * /dev
3911-
3912- /blockdir/ contains the symlinks to the contents of the target directory.
3913-
3914- /dev is the control file for VMBlock Fuse File System.
3915-
3916- In this new solution, a new folder /notifydir/ will be added, each file in this folder is a special file, read from this file will be blocked until any other process read from the corresponding file in target directory or the block on the target directory is removed.
3917-
3918- This patch only focus on the notification mechanism.
3919+ Common source file change not applicable to open-vm-tools.
3920
3921-commit 6c0b2130e7ee103ece06eb674c5f5dfea66c26f1
3922+commit 403dc83d2040d386b2c6c04756b289f277657e41
3923 Author: Oliver Kurth <okurth@vmware.com>
3924-Date: Tue Jun 19 11:07:45 2018 -0700
3925+Date: Wed May 22 13:09:37 2019 -0700
3926
3927- FreeBSD: clang compiler related changes to configure.ac
3928-
3929- On FreeBSD, the unwind.h header is available in the libunwind
3930- package (/usr/ports/devel/libunwind) which may or may not be installed
3931- on a system. The libunwind functions to determine the call-chain in a
3932- program are defined only if " __GNU_SOURCE" is defined to enable "all"
3933- GCC extensions. Avoid the unwind.h header if seen on FreeBSD.
3934-
3935- The "clang" compiler will issue warnings if the address of a member
3936- of a packed structure is taken. Since warnings are errors with -Wall,
3937- add --Wno-address-of-packed-member to CFLAGS when compiling with
3938- "clang".
3939+ Common header file change not applicable to open-vm-tools.
3940
3941-commit bba52bfa5b29c8860f18200022db5b8b250d326b
3942+commit af0a4979c7bcaba6a913e686609f99c1245db384
3943 Author: Oliver Kurth <okurth@vmware.com>
3944-Date: Tue Jun 19 11:07:45 2018 -0700
3945+Date: Wed May 22 13:09:37 2019 -0700
3946
3947- open-vm-tools: build with tirpc
3948-
3949- Newer distros (Fedora, OpenSuSE Tumblweed) no longer ship rpcgen with glibc,
3950- so we need to build with libtirpc (see
3951- https://bugzilla.redhat.com/show_bug.cgi?id=1531540 and
3952- https://bugzilla.suse.com/show_bug.cgi?id=1089181).
3953- With this change, configure will check for the presence of libtirpc and
3954- if found, sets flags to build with it. configure will also exit with an
3955- error if rpcgen is not found.
3956+ Change to common header file not applicable to open-vm-tools.
3957
3958-commit 5c0b9496db96af9ea5e4b3b1321f0612a3f62d99
3959+commit 7c1e69708bc3bbdbf9dc66b039ab40f9767b29c1
3960 Author: Oliver Kurth <okurth@vmware.com>
3961-Date: Tue Jun 19 11:07:44 2018 -0700
3962+Date: Wed May 22 13:09:37 2019 -0700
3963
3964- Changes to build CAF with VS 2015; not applicable to open-vm-tools.
3965+ Change to common header file not directly applicable to open-vm-tools.
3966
3967-commit 3961588fcce58090c249f4a65ad8cc109efecc5c
3968+commit da3efa69411c5fe8897e6295927dc4b8eacaff04
3969 Author: Oliver Kurth <okurth@vmware.com>
3970-Date: Tue Jun 19 11:07:44 2018 -0700
3971+Date: Wed May 22 13:09:36 2019 -0700
3972
3973- Log full version of Tools in vmware.log.
3974-
3975- Currently, only the Tools build number is logged in vmware.log.
3976- It will be very handy to have the full version logged in
3977- there and avoid the need to manually lookup the build.
3978+ Changes to common source files not directly applicable to open-vm-tools.
3979
3980-commit bf494fd02a77a4f34ff420c03c0c5a19e43218d3
3981+commit 8017efa7e941561274088d27e32883f6c1965abf
3982 Author: Oliver Kurth <okurth@vmware.com>
3983-Date: Tue Jun 19 11:07:44 2018 -0700
3984+Date: Wed May 22 13:09:36 2019 -0700
3985
3986- Tools 10.3.0 L10n drop2
3987+ Pick up filesystem (fsType) name for Linux disks.
3988
3989- This is to integrate the final L10n drop for VMware Tools 10.3.
3990+ Building upon the OS Volume Disk Mapping changes added for Windows
3991+ guests, pick up and propogate the filesystem type for Linux disks.
3992+ Move fsType related code and declaration out of the _WIN32 specific
3993+ source code.
3994+
3995+ Diskwiper code (for Linux) modified to pass along filesystem type
3996+ obtained from the MNTINFO structure from the non-Windows guest.
3997+ Also passing along the mount point for device-based mapping to be done
3998+ in the guestInfo plugin.
3999
4000-commit 065f09b94e09f1127901db29e73cc9b9f36df4fc
4001+commit 82d42ead6fc14eed2bc1670352f5fb8f62413230
4002 Author: Oliver Kurth <okurth@vmware.com>
4003-Date: Tue Jun 19 11:07:44 2018 -0700
4004+Date: Wed May 22 13:09:35 2019 -0700
4005
4006- Add two switches for max IPv4/6 routes to gather
4007+ Change to common header file not applicable to open-vm-tools.
4008+
4009+commit 744fe0bec43f7e242f1353c767c613180512000d
4010+Author: Oliver Kurth <okurth@vmware.com>
4011+Date: Wed May 8 15:27:20 2019 -0700
4012+
4013+ Common header file change not applicable to open-vm-tools.
4014+
4015+commit 5b0e339cde98dce03ec5046c04ded329f61dc5ef
4016+Author: Oliver Kurth <okurth@vmware.com>
4017+Date: Wed May 8 15:27:20 2019 -0700
4018+
4019+ Fix the 'procCmdName' attribute of process information.
4020
4021- Gathering nic info in a Linux guest OS which is configured with large
4022- number(60000+) of ipv6 routes could result in vmtoolsd process taking a
4023- long time and rock solid 100% CPU of a core. Though tools only exports
4024- at most NICINFO_MAX_ROUTES(100) routes, it tries to read all the contents
4025- of /proc/net/ipv6_route which costs too much time because:
4026- 1. IPv6 route table is not efficient natively compared to ipv4 due to
4027- its implementation.
4028- 2. The g_io library can aggravate the performance.
4029+ * When listing down the processes, /proc/{PID}/cmdline file is read
4030+ and parsed to figure out the command name. While doing this parsing,
4031+ the terminating NUL character is not parsed. Due to this, if any
4032+ process doesn't have any command line arguments, the 'command name' is
4033+ retrieved as NULL.
4034
4035- On the other hand, when gathering routes, IPv4 comes first, and IPv6 second.
4036- And the routes reported to VMX has an overall limitation of serializing
4037- (NICINFO_MAX_ROUTES). If there's more than NICINFO_MAX_ROUTES IPv4 routes
4038- in system, no IPv6 will get reported.
4039+ Note: This issue doesn't happen if the cmdLine has any arguments.
4040
4041- Added two switches "max-ipv4-routes" and "max-ipv6-routes"
4042- (NICINFO_MAX_ROUTES by default) in tools.conf and let SlashProcNet_GetRoute*()
4043- only read the first max ipv4/6 routes lines of /proc/net/[ipv6_]route to avoid
4044- performance problem. Users can disable ipv4/ipv6 routes gathering
4045- separately if they want ipv6 or ipv4 only.
4046+ Ex:
4047+ /usr/bin/vmtoolsd -> 'cmdName' is retrieved as NULL
4048+ /usr/bin/vmtoolsd -n vmusr -> 'cmdName' is retrieved properly as 'vmtoolsd'
4049+
4050+ * Fixed the code to include the trailing NUL character also while parsing.
4051
4052-commit bf86c612a8ffe1d20b98c20b76f0c34840a7a2a3
4053+commit 7b096ae277428efd8f550c1bbb35e98bb0cdf565
4054 Author: Oliver Kurth <okurth@vmware.com>
4055-Date: Tue Jun 19 11:07:44 2018 -0700
4056+Date: Wed May 8 15:27:20 2019 -0700
4057
4058- Not checking symbols when building open-vm-tools
4059+ Hgfs fuse Client: fix max name length setting for statvfs
4060
4061- Using a hard-coded mangled name is not a good idea because C++ does not
4062- have any standard for name mangling. Remove these mangled names introduced
4063- in an earlier fix.
4064+ Detected internally with Fedora 29 and reported in
4065+ https://github.com/vmware/open-vm-tools/issues/337,
4066+ the statvfs structure must provide a valid max name length field. Setting
4067+ to NAME_MAX. This allows the GUI Files application to create new folders
4068+ and rename existing ones correctly.
4069
4070-commit d36ed6e5b4784a36cb93f50e05d6a49b5d76b86e
4071+commit 9876844113a4f6b538f131d61b61c994264f7caf
4072 Author: Oliver Kurth <okurth@vmware.com>
4073-Date: Tue Jun 19 11:07:44 2018 -0700
4074+Date: Wed May 8 15:27:19 2019 -0700
4075
4076- [OVT] Update copyright year to 2018 for files modified since 10.2.5 GA
4077+ Plumb through filesystemType
4078+
4079+ Implement the filesystemType property in the vim.vm.guestInfo.DiskInfo.
4080
4081-commit 8086ead225faf3a051952773c0b98b2c751b1e84
4082+commit 79c7f28781fc38eb2e2ec691c907822dd1259bc4
4083 Author: Oliver Kurth <okurth@vmware.com>
4084-Date: Tue Jun 19 11:07:44 2018 -0700
4085+Date: Wed May 8 15:27:19 2019 -0700
4086
4087- Hgfs Win Client: fix bad illegal character escaping; not applicable to open-vm-tools.
4088+ Common header file change not applicable to open-vm-tools.
4089
4090-commit 7efc7b70a57cf734012a069fabab19e96f8cf16d
4091+commit 000856aea0bd78c581888c3e3771cf79c6fdb7e9
4092 Author: Oliver Kurth <okurth@vmware.com>
4093-Date: Tue Jun 19 11:07:43 2018 -0700
4094+Date: Wed May 8 15:27:19 2019 -0700
4095
4096- Add the JACKHAMMER code name to the 10.3.0 release version defines.
4097+ Fix copy/paste on Ubuntu 19.04 guest
4098
4099- Adding the code name JACKHAMMER to the 10.3.x series version notation
4100- for the public source release and use by future 10.3.x patches or
4101- updates.
4102+ Ubuntu 19.04 chooses Nautilus 3.32 as the default file browser. From
4103+ 3.30, Nautilus checks mime type when pasting files from the clipboard,
4104+ and the target type is also changed to UTF8_STRING instead of
4105+ x-special/gnome-copied-files. To support Ubuntu 19.04, apply this
4106+ change into our guest code.
4107
4108-commit d71381445f6c3b986e263435006428a44be0451a
4109+commit 7bbb1521360bd140a56d1fbf6a9663d297277901
4110 Author: Oliver Kurth <okurth@vmware.com>
4111-Date: Tue Jun 19 11:07:43 2018 -0700
4112+Date: Wed May 8 15:27:19 2019 -0700
4113
4114- Hgfs Server Plugin: only handle the shared folders client in hosted products
4115+ Add a comment in vmci_sockets.h about why a file handle is "leaked"
4116
4117- Only initialize the Shared Folders client redirector in hosted product
4118- environments.
4119+ Let's add a comment in vmci_sockets.h explaining why we intentionally "leak"
4120+ a file handle in VMCISock_GetAFValueFd.
4121
4122- Details: Check if the tools system service started in a non-hosted product
4123- and if so do not start the shared folders client redirector.
4124- Check if the tools user service started in a non-hosted product product and if
4125- so then skip reconnecting any Shared Folders mapped drives.
4126+ fd is intentionally left open when outFd is NULL. Closing it
4127+ will break applications running on Linux without a fixed AF for
4128+ vSockets. In such cases, the fd will be closed during cleanup when
4129+ the application exits.
4130
4131-commit ad7c68780a773d6d456687aff0d27f9cff808370
4132+commit a5823224051da0318facf10e0732baa9f55334fc
4133 Author: Oliver Kurth <okurth@vmware.com>
4134-Date: Thu May 10 16:47:16 2018 -0700
4135+Date: Wed May 8 15:27:19 2019 -0700
4136
4137- update version number
4138+ Fix a trivial Coverity-reported memory leak.
4139+
4140+ If AuthLoadPAM doesn't find all the needed symbols from the pam
4141+ library, then dlclose the library, as is already done for
4142+ the same-named funtion in bora/lib/auth/authPosix.c.
4143
4144-commit cac0f086ffcc00da73dd7dd80fef6956962f4dd6
4145+commit 47766e511be85410f5afc0bf8b0f05776fb66ece
4146 Author: Oliver Kurth <okurth@vmware.com>
4147-Date: Thu May 10 16:38:11 2018 -0700
4148+Date: Wed May 8 15:27:19 2019 -0700
4149
4150- Remove debug display of CPUID vendor string seen in VmCheck_IsVirtualWorld
4151+ Record Tools version 10.3.11 as Hot Patch for PR 2328829
4152+
4153+commit 801df14f0e2b32aea17771bbd33d65140ff2361c
4154+Author: Oliver Kurth <okurth@vmware.com>
4155+Date: Wed May 8 15:27:19 2019 -0700
4156+
4157+ Fix Coverity-reported double memory free errors.
4158
4159- The "Debug" message containing vendor string returned by the CPUID
4160- instruction will appear on STDERR for stand-alone programs such
4161- as vmware-checkvm. This unexpected output is at best noise and may
4162- adversely affect existing scripts.
4163+ Similar double memory free errors were reported in each of two
4164+ functions, VixToolsListAuthAliases and VixToolsListMappedAliases.
4165+ The fixes for each function are similar: be consistent in using
4166+ tmpBuf2 (renamed tmpBuf) as the pointer to the overall buffer being
4167+ computed and tmpBuf (renamed nextBuf) as the "next" version of the
4168+ buffer. Specifically, in the computation of recordBuf following exit
4169+ from the for loop, use the variable formerly known as tmpBuf2 rather
4170+ than the one formerly known as tmpBuf.
4171+
4172+ The variables were renamed in an attempt to distinguish more clearly
4173+ between them and how they are used. Also, with these changes in
4174+ place, it's evident that there's no need to free nextBuf in the abort
4175+ case and as a result its scope can be limited.
4176
4177-commit 7ddbe3c9df400dfdf7d67d259ae3942d157dedb4
4178+commit 2031724154177a3f5ce28d3c608709c7ad6153dc
4179 Author: Oliver Kurth <okurth@vmware.com>
4180-Date: Mon Apr 30 15:42:54 2018 -0700
4181+Date: Wed May 8 15:27:19 2019 -0700
4182
4183- sync deploypkg files
4184+ Common header file change not applicable to open-vm-tools.
4185
4186-commit 80a23d71a281493071668fd45b77d7f8248fad68
4187+commit 8634350c330318eaf8f333c49f405e20b71ca813
4188 Author: Oliver Kurth <okurth@vmware.com>
4189-Date: Mon Apr 30 14:04:14 2018 -0700
4190+Date: Wed May 8 15:27:19 2019 -0700
4191
4192- Changes to common header files:
4193- - Add Amazon Linux 2 to the known guest OS list.
4194- - Other change not application to open-vm-tools.
4195+ Common header file change not directly applicable to open-vm-tools.
4196
4197-commit 48dc7a57ff3fe5cb1441040876f74b69772c1ea5
4198+commit 2bbd56da4314856dfc1a8fed2db5b55cd9ef8860
4199 Author: Oliver Kurth <okurth@vmware.com>
4200-Date: Mon Apr 30 14:04:13 2018 -0700
4201+Date: Wed May 8 15:27:18 2019 -0700
4202
4203- [DeployPkg] Replace Log() references with g_log()
4204+ Fixes for few leaks and improved error handling.
4205
4206- * Modified the code to replace a couple of Log() references with g_debug()
4207- so that they are properly logged with 'deplogPkg' domain instead of the
4208- generic 'vmsvc' domain in the tools log files.
4209+ Fix a memory leak detected by coverity scan. It is not critical,
4210+ but it is real in an error case when there is no end mark. While
4211+ fixing it, also enhanced code to handle different error cases
4212+ properly because we would want valid content to be decoded even
4213+ when there are invalid marks in the log file. Invalid log marks
4214+ are possible when vmware.log gets rotated in the middle of guest
4215+ logging.
4216+
4217+ While verifying the fix using valgrind, found a couple of more
4218+ leaks in panic and warning stubs. Addressed those as well.
4219
4220-commit 9cb12223b4da529df043d95ab025f22c6ee00c39
4221+commit 544cf1363c78d1d8c75e57d560b3650b5f667c64
4222 Author: Oliver Kurth <okurth@vmware.com>
4223-Date: Mon Apr 23 17:08:18 2018 -0700
4224+Date: Wed May 8 15:27:18 2019 -0700
4225
4226- [oss] Upgrade GTK+ and its dependent libraries for VMtools
4227+ Fix a trivial Coverity-reported memory leak in vgauth/cli/main.c.
4228
4229- GTK+ and its dependent libraries are upgraded to:
4230- gtk+ 2.24.32
4231- atk 2.28.1
4232- gdk-pixbuf 2.36.11
4233- pango 1.40.13
4234- cairo 1.14.12
4235- fontconfig 2.13.0
4236- freetype 2.9
4237+ Call Pref_Shutdown to close the PrefHandle.
4238
4239-commit a5c03957c95ec78c92246b87cdf60a90b2eca7f7
4240+commit 4a2c4645a363c705e66cdb81847f579d8ff30e04
4241 Author: Oliver Kurth <okurth@vmware.com>
4242-Date: Mon Apr 23 17:08:18 2018 -0700
4243+Date: Tue Apr 30 13:24:25 2019 -0700
4244
4245- Common header file change not applicable to open-vm-tools.
4246+ Add garbage collection for vix process handles.
4247+
4248+ This closely follows the model used for hgfs session cleanup.
4249
4250-commit f87d177acab33f00229234ed51722504e2f7afc7
4251+commit ea2ee4789fd0db5451752ea98af55a3c6b47f1d2
4252 Author: Oliver Kurth <okurth@vmware.com>
4253-Date: Mon Apr 23 17:08:18 2018 -0700
4254+Date: Tue Apr 30 13:24:25 2019 -0700
4255
4256- Changes to common header files not directly applicable to open-vm-tools.
4257+ Common header file change not applicable to open-vm-tools.
4258
4259-commit ba65905dfc7e6c07d1aeea37db885284e54b02fa
4260+commit 4ee0255f2f7a32a76095de8c02a869e78f7ec765
4261 Author: Oliver Kurth <okurth@vmware.com>
4262-Date: Mon Apr 23 17:08:18 2018 -0700
4263+Date: Tue Apr 30 13:24:25 2019 -0700
4264
4265- Set perms on Tools script logs.
4266-
4267- Make the network script logs secure; set log file perms to 0600.
4268+ Common header file change not applicable to open-vm-tools.
4269
4270-commit aa59d16e0b5968efc298065ef50ece282d406265
4271+commit 9e6e3afa5b5c3dc11c7aa79454ca4c8184c87bdf
4272 Author: Oliver Kurth <okurth@vmware.com>
4273-Date: Mon Apr 23 17:08:18 2018 -0700
4274+Date: Tue Apr 30 13:24:25 2019 -0700
4275
4276- [Wayland DnD] Part2: Open the uinput device file with root permission.
4277+ Fix a memory leak in the unicode library.
4278
4279- The device file /dev/uinput (or /dev/input/uinput) can only be accessed
4280- by root account, so the dndcp plugin may failed to open this device file
4281- if the current user is not root account.
4282-
4283- A way to fix this issue is opening this device file with root account,
4284- then pass the file descriptor to the sub task which is started with the
4285- current account. An example for this solution is blockVM file system
4286- device file.
4287+ Ensure that allocated strings are freed before returning a failure.
4288
4289- This patch is part of the new feature 'Wayland support in Linux guest'.
4290+ The ASSERTs have never been known to fire; a warning in a obj
4291+ build will help with debugging. The warning should "never" happen.
4292
4293-commit b3899c91d348d23c2e6c22944b8ac1a06e4e3988
4294+commit d1de801b4b490aeecd982f19274e46485f156f79
4295 Author: Oliver Kurth <okurth@vmware.com>
4296-Date: Mon Apr 23 17:08:18 2018 -0700
4297+Date: Tue Apr 30 13:24:25 2019 -0700
4298
4299- [Wayland DnD] Part1: Add 'fakeMouse' module which is used to simulate the
4300- mouse motion under Wayland
4301-
4302- For Linux guest with X11, the VMTools uses the X system APIs to simulate
4303- the mouse motion, but these X11 System APIs do not work in Wayland. Need
4304- to pick up another method to simulate the mouse motion.
4305+ Common header file change not applicable to open-vm-tools.
4306+
4307+commit b2a6fdafed0bef27a77d549e4ffbed9a09b9f0bd
4308+Author: Oliver Kurth <okurth@vmware.com>
4309+Date: Tue Apr 30 13:24:25 2019 -0700
4310+
4311+ Common header file change not applicable to open-vm-tools.
4312+
4313+commit a63fe3472895c9394ee8c3f2d0d2a496c3ccab6f
4314+Author: Oliver Kurth <okurth@vmware.com>
4315+Date: Tue Apr 30 13:24:25 2019 -0700
4316+
4317+ Common header file change not applicable to open-vm-tools.
4318+
4319+commit 9bec96154c23462f2c6f80dd660f41bba38d4614
4320+Author: Oliver Kurth <okurth@vmware.com>
4321+Date: Tue Apr 30 13:24:25 2019 -0700
4322+
4323+ Provide a shutdown function for users of the unicode library to free memory
4324+ allocated by Unicode_Init().
4325
4326- Another way to simulate the mouse motion is using uinput module.
4327+ Most applications using the unicode library do not free related memory
4328+ since they are about to terminate. A Unicode_Shutdown() function is
4329+ provided which will explicitly free the memory allocated by Unicode_Init().
4330+
4331+commit 5614d61a2b8353cd48095210afbcc89f66228ae7
4332+Author: Oliver Kurth <okurth@vmware.com>
4333+Date: Tue Apr 30 13:24:25 2019 -0700
4334+
4335+ Changes to common header files not applicable to open-vm-tools.
4336+
4337+commit 4ae954db584b7e3287a97f44d0eeb96d09ba2c68
4338+Author: Oliver Kurth <okurth@vmware.com>
4339+Date: Tue Apr 30 13:24:25 2019 -0700
4340+
4341+ Common header file change not directly applicable to open-vm-tools.
4342+
4343+commit 35570e72d3833b73db653c89c84223c959856467
4344+Author: Oliver Kurth <okurth@vmware.com>
4345+Date: Tue Apr 30 13:24:25 2019 -0700
4346+
4347+ Changes to common source files not directly applicable to open-vm-tools.
4348
4349- uinput is a kernel module that makes it possible to emulate input devices
4350- from userspace. By writing to /dev/uinput (or /dev/input/uinput) device,
4351- a process can create a virtual input device with specific capabilities.
4352- Once this virtual device is created, the process can send events through
4353- it, that will be delivered to userspace and in-kernel consumers.
4354+ Added the function Random_FastStream64() to provide a 64-bit random number
4355+ if needed.
4356+
4357+commit e89c751f0045f163c468c49b71db70478581c85c
4358+Author: Oliver Kurth <okurth@vmware.com>
4359+Date: Tue Apr 30 13:24:25 2019 -0700
4360+
4361+ vm_basic_defs.h: include stddef.h
4362
4363- Here is the link which contains more information about the uinput module:
4364+ The stddef.h header has existed since C89. It includes interesting
4365+ things like an offsetof definition, and a definition of NULL.
4366
4367- https://www.kernel.org/doc/html/v4.12/input/uinput.html
4368+ Let's stop re-inventing this long-standardized header. Except
4369+ in vmkernel, where bogus __FreeBSD__ values break gcc's <stddef.h>.
4370+ (Detail: vmkernel networking likes to define __FreeBSD__ to empty
4371+ or 1, whereas ABI requires "FreeBSD major version".
4372
4373- This patch adds a new module named 'fakeMouse' which is used to simulate the mouse motion under Wayland.
4374+ This change is deliberately minimal as touching headers included
4375+ everywhere is inherently fragile. Further cleanups (like removing
4376+ vmw_offsetof) can be done in follow-up changes.
4377
4378- This patch is part of the new feature 'Wayland support in Linux guest'.
4379+ The stddef.h header is a 'freestanding' header, which means it's
4380+ part of the language and not a "system" header. It is thus safe
4381+ to include (modulo vmkernel-networking problem above).
4382
4383-commit 995befcb0d6156fb47773c96db6d478173d1bc89
4384+commit 642d7a61db13969f9fb654ad1cc0d879bf680612
4385 Author: Oliver Kurth <okurth@vmware.com>
4386-Date: Mon Apr 23 17:08:18 2018 -0700
4387+Date: Tue Apr 30 13:24:25 2019 -0700
4388
4389- Add new guest metrics to be consumed by vROps.
4390+ Fix Coverity reported issues in i18n.c code - VMTools & VGAuth
4391
4392- Windows:
4393- * ProcessorQueueLength
4394- * CurrentDiskQueueLength
4395- * AvgDiskQueueLength
4396+ bora-vmsoft/apps/vmtoolsbib/i18n.c: MsgLoadCatalog()
4397+ - Coverity reported memory leak when an error is encountered parsing a
4398+ line from a message catalog.
4399+ - Second memory leak on error missed.
4400
4401- Linux:
4402- * CPU run queue size
4403- * Current disk queue size
4404- * Average disk queue size
4405+ bora-vmsoft/vgauth/common/i18n.c: MsgLoadCatalog()
4406+ - Coverity reported some dead code.
4407+ - Missed reporting memory leak when error is encountered parsing a
4408+ line from a message catalog.
4409
4410-commit 9d6cfe650cd15095e65024fbb5d9cd6944e1cf14
4411+commit 0f7b4b275aaf20bebf8d4739cf283fade05c3dcb
4412 Author: Oliver Kurth <okurth@vmware.com>
4413-Date: Mon Apr 23 17:08:17 2018 -0700
4414+Date: Tue Apr 30 13:24:25 2019 -0700
4415
4416- Historical: Recording version numbers assigned for 10.2.x patches.
4417+ Common header file change not applicable to open-vm-tools.
4418+
4419+commit 9e0ccaa3bf2805674fd882362427aa2d3376a3a8
4420+Author: Oliver Kurth <okurth@vmware.com>
4421+Date: Tue Apr 30 13:24:24 2019 -0700
4422+
4423+ Common header file change not applicable to open-vm-tools.
4424+
4425+commit 3cf1df758ba64cb6aebe81bf3a430ad536221c19
4426+Author: Oliver Kurth <okurth@vmware.com>
4427+Date: Tue Apr 30 13:24:24 2019 -0700
4428+
4429+ Toolsd uses log.text RPC only when the useLogTextRpc is set to TRUE.
4430
4431- Define TOOLS_VERSION_CHAINSAW_PATCH1 as 10.2.1.
4432- Define TOOLS_VERSION_CHAINSAW_PATCH2 as 10.2.6.
4433+ This allows the tools installer to start use the log.text RPC without
4434+ worrying about that toolsd has not completed the work of scrubbing its logs
4435+ for security and privacy issues.
4436
4437-commit ba6c319f18d294b36c0e989f851fbfdbc8a629b7
4438+commit 1b755d3e619ed40d8750532f10af5a1df6de6cda
4439 Author: Oliver Kurth <okurth@vmware.com>
4440-Date: Mon Apr 23 17:08:17 2018 -0700
4441+Date: Tue Apr 30 13:24:24 2019 -0700
4442
4443- Bump up the version requirement for glib and friends to 2.34.0
4444+ Fix memory leak in SNEBuildHash function.
4445
4446- For open-vm-tools, we are bumping up the minimum version requirement
4447- to 2.34.0 for glib and its friends. Modified the configure.ac
4448- with the proper new version checks. Also, updated the
4449- error message with the proper version.
4450+ In a specific code path of the SNEBuildHash function, when the
4451+ environment variable is of the format VMWARE_*=[0|1], the value
4452+ is not freed. Fixed the memory leak.
4453
4454-commit 26d03ad8075913cb869b814462b7285c02367252
4455+commit 0957e9c46476f8eab435576e7094b125e102f6ce
4456 Author: Oliver Kurth <okurth@vmware.com>
4457-Date: Mon Apr 23 17:08:17 2018 -0700
4458+Date: Tue Apr 30 13:24:24 2019 -0700
4459
4460 Common header file change not applicable to open-vm-tools.
4461
4462-commit ce1ed002f5e05f09678e15b4021bac8155edb1eb
4463+commit bbefe8051a56b3cf834bf71c8f55fdfd88802b9d
4464 Author: Oliver Kurth <okurth@vmware.com>
4465-Date: Mon Apr 23 17:08:17 2018 -0700
4466+Date: Mon Apr 15 11:33:00 2019 -0700
4467
4468- Common source file changes that are not directly related to open-vm-tools.
4469-
4470- Build vmtools and vgauth for Windows with xmlsec instead of
4471- xml-security-c. It will still be possible to build with xml-security-c
4472- either by commenting out the definition of USE_XMLSEC_FOR_WINDOWS in
4473- bora-vmsoft/vgauth/make/inc/defs.mk or adding a make command line
4474- argument of USE_XMLSEC_FOR_WINDOWS=0.
4475+ Common header file change not applicable to open-vm-tools.
4476
4477-commit d5c0bcea04aae65484ba3c2756b64acf6f6388d0
4478+commit a0b825b2251bf9d30fb29d5deb1d269ec361428c
4479 Author: Oliver Kurth <okurth@vmware.com>
4480-Date: Mon Apr 23 17:08:17 2018 -0700
4481+Date: Mon Apr 15 11:33:00 2019 -0700
4482
4483- Update bora-vmsoft/install/Source/README
4484-
4485- The content is stale. Since the file is used internally and is
4486- not published, rather than maintain it in two places, point to
4487- the current README file and Release Notes on github.
4488+ Common header file change not applicable to open-vm-tools.
4489
4490-commit 512d5475520ec5e0525633cd47530faaae774b5e
4491+commit abd87bf17c9869900dad292a458b871de90c4c7d
4492 Author: Oliver Kurth <okurth@vmware.com>
4493-Date: Mon Apr 23 17:08:17 2018 -0700
4494+Date: Mon Apr 15 11:33:00 2019 -0700
4495
4496 Common header file change not applicable to open-vm-tools.
4497
4498-commit 982998c9a6a3ec8664f9c4c08ff9ef30f52a9ae2
4499+commit 85bc2e71dd7a855d3c533965859c1756deecc314
4500 Author: Oliver Kurth <okurth@vmware.com>
4501-Date: Mon Apr 23 17:08:17 2018 -0700
4502+Date: Mon Apr 15 11:33:00 2019 -0700
4503
4504- Common header file change not applicable to open-vm-tools.
4505+ Fix minor leak in FileRotateByRenumber - Coverity scan
4506
4507-commit ab36b3227275a5beded8a5115929e2d649c6aad3
4508+commit 82169f198925c9aa27bd04fd665eac67396adbe7
4509 Author: Oliver Kurth <okurth@vmware.com>
4510-Date: Mon Apr 23 17:08:17 2018 -0700
4511+Date: Mon Apr 15 11:33:00 2019 -0700
4512
4513- Common header file changes not applicable to open-vm-tools.
4514+ Fix a leak if VGAuth setup fails. Coverity issue
4515
4516-commit 0527d5c5f14f626a5129231778ec433dfff55c2a
4517+commit 555f28c7d07161a5bcd0a90fe46869bc6be4ba21
4518 Author: Oliver Kurth <okurth@vmware.com>
4519-Date: Mon Apr 23 17:08:17 2018 -0700
4520+Date: Mon Apr 15 11:33:00 2019 -0700
4521+
4522+ Common source file change not applicable to open-vm-tools.
4523+
4524+commit b9993b990ea7dc077c6e625137802492245fb31b
4525+Author: Oliver Kurth <okurth@vmware.com>
4526+Date: Mon Apr 15 11:33:00 2019 -0700
4527
4528 Common header file change not applicable to open-vm-tools.
4529
4530-commit 571dc1fbadd962d91dcb7a44652b501de3f48e0e
4531+commit ca4be3d1bcb1d184eafb2c576dd7a127a95628fc
4532 Author: Oliver Kurth <okurth@vmware.com>
4533-Date: Mon Apr 23 17:08:16 2018 -0700
4534+Date: Mon Apr 15 11:33:00 2019 -0700
4535
4536 Common header file change not applicable to open-vm-tools.
4537
4538-commit 998903d73496bf6080053f994c8410dc880db2f9
4539+commit e6d24a37cdcd88624f66ad86f161e8576e7c6ec0
4540 Author: Oliver Kurth <okurth@vmware.com>
4541-Date: Mon Apr 23 17:08:16 2018 -0700
4542+Date: Mon Apr 15 11:32:59 2019 -0700
4543
4544 Common header file change not applicable to open-vm-tools.
4545
4546-commit 3b814f9b4dcbf54893078a4ba187d8d0cbf23e31
4547+commit da8c476be54bcd94c6b4f15a013dd02419b4ec29
4548 Author: Oliver Kurth <okurth@vmware.com>
4549-Date: Mon Apr 23 17:08:16 2018 -0700
4550+Date: Mon Apr 15 11:32:59 2019 -0700
4551
4552- lib/hashMap/hashMap.c:
4553- Add new HashMap_Get() which uses a constant time memory comparison function.
4554+ Changes to common source files not directly applicable to open-vm-tools.
4555
4556- lib/misc/utilMem.c:
4557- Constant time memory and string comparison functions.
4558+ Add an error code to a debug message.
4559
4560-commit 5daceb4448834143d884b061f391c37aeaaad683
4561+commit 8eba31ddbf50a194acdd3eb30935a1fb3895bd50
4562 Author: Oliver Kurth <okurth@vmware.com>
4563-Date: Mon Apr 23 17:08:16 2018 -0700
4564+Date: Mon Apr 15 11:32:59 2019 -0700
4565
4566- Changes to common header files not applicable to open-vm-tools.
4567+ Common header file change not applicable to open-vm-tools.
4568
4569-commit 42d1e6b11c0b11c1b1f6f967cb5c4d7e2f3b39e0
4570+commit b4a0d4c8137cdfbee073b456c71b731fa21e6ead
4571 Author: Oliver Kurth <okurth@vmware.com>
4572-Date: Mon Apr 23 17:08:16 2018 -0700
4573+Date: Mon Apr 15 11:32:59 2019 -0700
4574
4575- Change to common header file not applicable to open-vm-tools.
4576+ Common header file change not applicable to open-vm-tools.
4577
4578-commit f4b7b227119712c90be4a3583d4430a3fcc1d093
4579+commit e53f942615313e5d209f49d9c4da4227671c38d8
4580 Author: Oliver Kurth <okurth@vmware.com>
4581-Date: Mon Apr 23 17:08:16 2018 -0700
4582+Date: Mon Apr 15 11:32:59 2019 -0700
4583
4584- Change to common header file not applicable to open-vm-tools.
4585+ Common header file change not applicable to open-vm-tools.
4586
4587-commit 874b8b4801a5bba439401db8e624e3e3d1989ca7
4588+commit c0ec4f8294ec6428ee2a7f7284b37f79f4661bf3
4589 Author: Oliver Kurth <okurth@vmware.com>
4590-Date: Mon Apr 23 17:08:16 2018 -0700
4591+Date: Mon Apr 15 11:32:59 2019 -0700
4592
4593- Common header file change not applicale to open-vm-tools.
4594+ Add a DynBuf_InitWithString() function to the dynamic buffer routines.
4595
4596-commit ff2616a657c32bbb5e6799f8b8cd0a470d0e5202
4597+commit 2dc55af11451712b05a0c85a9c2ba1e5619b4841
4598 Author: Oliver Kurth <okurth@vmware.com>
4599-Date: Mon Apr 23 17:08:16 2018 -0700
4600+Date: Mon Apr 15 11:32:59 2019 -0700
4601
4602- Common header file changes not applicable to open-vm-tools.
4603+ Common header file change not applicable to open-vm-tools.
4604
4605-commit 5d9cc73f1c7979466d55f7897f98c0888d2fb15d
4606+commit f35313969af9bd2815709930f054171d7ebbcbc9
4607 Author: Oliver Kurth <okurth@vmware.com>
4608-Date: Mon Apr 23 17:08:15 2018 -0700
4609+Date: Mon Apr 15 11:32:58 2019 -0700
4610
4611- Header file change in preparation for C++11 compilation. Also updating
4612- copyright dates.
4613+ Common header file change not applicable to open-vm-tools.
4614
4615-commit 29fb30f6d1956ccd4ad803b1b7f0430e4ef28ceb
4616+commit c864f9e015a25864b952210796458e77c1f5726f
4617 Author: Oliver Kurth <okurth@vmware.com>
4618-Date: Mon Apr 23 17:08:15 2018 -0700
4619+Date: Mon Apr 15 11:32:58 2019 -0700
4620
4621- FreeBSD vmmemctl: Fold in open-vm-tools pull requests #125 and #140
4622-
4623- This change incorporates two open-vm-tools pull requests that provide
4624- code changes that allows the existing vmmemctl.ko driver to be compiled
4625- on FreeBSD 10, 11 or 12.
4626-
4627- Pull request #125:
4628- An optional argument has been added to the sysctl_add_oid() function
4629- in FreeBSD 12.x. All releases have a SYSCTL_ADD_OID() macro that does
4630- not require the additional argument.
4631-
4632- Pull request #140:
4633- Functions and macros to lock and unlock memory pages and objects have
4634- changed between the FBSD 10 & 11. The pull request provides a set C
4635- preprocessor directives to select the appropriate code based on the
4636- FreeBSD release being targeted.
4637-
4638- The code change as been tidied up by using the release version checks
4639- to define LOCK and UNLOCK macros for memory pages and objects at the
4640- beginning of the source file. The code logic is easier to follow
4641- without the abundance of #if, #else and #endif statements scattered
4642- about.
4643-
4644- Ed Schouten: https://github.com/vmware/open-vm-tools/pull/125
4645- Steve Wills: https://github.com/vmware/open-vm-tools/pull/140
4646+ Common header file change not directly applicable to open-vm-tools.
4647
4648-commit 2a34b181de524b3f0d01cad90d3da184bde7ad99
4649+commit 6de2df2c43c412c048f666277eaa48d8bb0c0321
4650 Author: Oliver Kurth <okurth@vmware.com>
4651-Date: Mon Apr 23 17:08:15 2018 -0700
4652+Date: Wed Apr 10 14:14:57 2019 -0700
4653
4654- Common source file changes not directly applicable to open-vm-tools.
4655+ Common header file change not applicable to open-vm-tools.
4656
4657-commit fab45e62a1468b86d2097a6a0784c4f259d6b0ef
4658+commit 306f0f7b507486795c0d726288ceb7145dcf3c00
4659 Author: Oliver Kurth <okurth@vmware.com>
4660-Date: Mon Apr 23 17:08:15 2018 -0700
4661+Date: Wed Apr 10 14:14:57 2019 -0700
4662
4663- Common header file change not applicable to open-vm-tools.
4664+ Common header file change no applicable to open-vm-tools.
4665
4666-commit 357e8418e5441c2c5fc75a19f7b6529d6bce7452
4667+commit 6219e245c5e42479f4aef36ab8ee49db3c368f83
4668 Author: Oliver Kurth <okurth@vmware.com>
4669-Date: Mon Apr 23 17:08:15 2018 -0700
4670+Date: Wed Apr 10 14:14:57 2019 -0700
4671
4672- Common header file change not applicable to open-vm-tools.
4673+ Remove use of "-Wno-address-of-packed-member" option for OVT builds on FBSD
4674+
4675+ With the HGFS source code refactor to avoid taking the address of a
4676+ packed structure memberuse of "-Wno-address-of-packed-member"
4677+ is no longer needed to build OVT on FBSD 11.x and FBSD 12.x.
4678
4679-commit fad97e4a7c756b3b297e0fe9e68a1a4674c4fdcc
4680+commit 8b2bbbd8c2b647592a2f444a678fe93552fb0d22
4681 Author: Oliver Kurth <okurth@vmware.com>
4682-Date: Mon Apr 23 17:08:15 2018 -0700
4683+Date: Wed Apr 10 14:14:56 2019 -0700
4684
4685- Common header file change not applicable to open-vm-tools.
4686+ Add a 64 bit pseudo random number generator
4687+
4688+ This change adds a 64 bit pseudo random number generator to the public
4689+ library by calling the existing 32 bit Random_Fast function twice.
4690+ Since the period of Random_Fast is 2^64, this should be sufficient.
4691
4692-commit 357d9139342c19a98ed12f5961f415d099df3287
4693+commit 5f9bd0c6a39a266854fad680d2251c024c309425
4694 Author: Oliver Kurth <okurth@vmware.com>
4695-Date: Fri Mar 23 15:05:36 2018 -0700
4696+Date: Wed Apr 10 14:14:56 2019 -0700
4697
4698- Common source file changes that are not applicable to open-vm-tools.
4699+ Remove some "always TRUE" comparisons reported by clang 6.0 on FBSD.
4700+
4701+ A recent refactoring of HGFS fuse code to avoid taking the address of
4702+ a field in a packed structure introduced a comparision of an array
4703+ address != NULL which will always evaluate to "true". Removing the
4704+ unnecessary "if" statements.
4705
4706-commit 6c3261d152442fa11fc2b928490d74846f23465d
4707+commit 67b66d0ff13324413deac6c522bd382ee450125e
4708 Author: Oliver Kurth <okurth@vmware.com>
4709-Date: Fri Mar 23 15:05:36 2018 -0700
4710+Date: Wed Apr 10 14:14:56 2019 -0700
4711+
4712+ Common source file change not applicable to open-vm-tools.
4713+
4714+commit 86bf8de08dbb28e8902411b8a9bc0e64f972f74d
4715+Author: Oliver Kurth <okurth@vmware.com>
4716+Date: Wed Apr 10 14:14:56 2019 -0700
4717
4718 Common header file change not applicable to open-vm-tools.
4719
4720-commit 3747daca8efbfe8e709687b97c874a29f183b717
4721+commit 3bc7907533c45544fcfb24906a0e4b7de61718e7
4722 Author: Oliver Kurth <okurth@vmware.com>
4723-Date: Fri Mar 23 15:05:36 2018 -0700
4724+Date: Wed Apr 10 14:14:55 2019 -0700
4725
4726- Backout previous change to lib/include/vm_basic_math.h.
4727+ Changes to common header files not applilcable to open-vm-tools.
4728
4729-commit f9414d19532a9664e6c260a8644ee09200e32429
4730+commit 6576ad0d7b28bd1ddab2fce8a0f34695aa57a774
4731 Author: Oliver Kurth <okurth@vmware.com>
4732-Date: Fri Mar 23 15:05:36 2018 -0700
4733+Date: Wed Apr 10 14:14:55 2019 -0700
4734
4735- Common header file change: lib/include/vm_basic_math.h
4736-
4737- Define portability macros for Inf and Nan tests.
4738+ Common source file change not applicable to open-vm-tools.
4739
4740-commit de2010a1a45a9e515b932a1a83374539661a2b39
4741+commit 8c69b930a826aad87c692d516fd77d1a4cbed0fb
4742 Author: Oliver Kurth <okurth@vmware.com>
4743-Date: Fri Mar 23 15:05:35 2018 -0700
4744+Date: Wed Apr 10 14:14:55 2019 -0700
4745
4746- Add missing memory constraints for vm_atomic RMW (Read/Modify/Write) instructions
4747+ DnD Phase II] - Avoid potential memory overflow.
4748
4749- There are two inseparable concepts involved when dealing with atomics:
4750- 1. Atomicity of the access itself
4751- 2. Ordering of the access with respect to other reads&writes (from the view of
4752- other processors).
4753-
4754- Our Read-Modify-Write functions are all meant to provide the highest level of
4755- ordering guarantee: Sequential Consistency, which means no reordering of reads
4756- or writes across the access. We properly implement that on ARM, and on
4757- x86/x64 at the hardware layer. But, on x86/x64 we needed to tell the compiler
4758- (it must flush out any pending reads/writes that are currently hiding in
4759- registers)
4760+ In the case when dragging a format whose size is exactly the same as the
4761+ size threshold and plain text is provided, the plain text can't be added.
4762+ Current logic does not handle this case. Instead it will result in a
4763+ large unsigned number (0-1 = 0xffff_ffff) of bytes to be allocated to
4764+ store plain text which causes memory overflow.
4765
4766- Side Note: we do *not* change the pure Read and pure Write functions, only
4767- the Read/Modify/Write ones. On both ARM and x86/x64, vm_atomic functions like
4768- Atomic_WriteN provide no (re)ordering guarantees today (at the hardware layer
4769- on ARM or at the compiler layer on x86/x64). This is because some callers
4770- didn't need or want such guarantees - as such, Atomic_WriteN by itself is
4771- *not* sufficient to, say, release a lock. Making these remaining atomic
4772- weapons safe by default will require us to first
4773- 1. add new unordered atomic equivalents of Atomic_ReadN/TestBitN and
4774- Atomic_WriteN (in C11 terminology, acquire/release and relaxed)
4775- 2. Scan the tree and switch appropriate callers to the new functions
4776+ Just return in the case that no more size left to add plain text or the
4777+ plain text is empty.
4778+
4779+commit 685aa3d0879aabde450ba0d6c79d256d6abaf3f5
4780+Author: Oliver Kurth <okurth@vmware.com>
4781+Date: Wed Apr 10 14:14:55 2019 -0700
4782+
4783+ Common header file change not applicable to open-vm-tools.
4784+
4785+commit 71b41229ffe1f31711b35145ee1ab0bfbb763295
4786+Author: Oliver Kurth <okurth@vmware.com>
4787+Date: Wed Apr 10 14:14:54 2019 -0700
4788+
4789+ Common header file change not applicable to open-vm-tools.
4790+
4791+commit f2eb555cf6e9f8c779daf1dc9c2f7aff383d105a
4792+Author: Oliver Kurth <okurth@vmware.com>
4793+Date: Wed Apr 10 14:14:54 2019 -0700
4794+
4795+ Common header file change not applicable to open-vm-tools.
4796+
4797+commit 8046af84ee4aa1d271af4c1d2379fb3d88dba3ac
4798+Author: Oliver Kurth <okurth@vmware.com>
4799+Date: Wed Apr 10 14:14:54 2019 -0700
4800+
4801+ Common header file change not applicable to open-vm-tools.
4802+
4803+commit cf05c47b06af90a7bb7c5d561fb425ba2ebc0b47
4804+Author: Oliver Kurth <okurth@vmware.com>
4805+Date: Wed Apr 10 14:14:54 2019 -0700
4806+
4807+ Common source file change not directly applicable to open-vm-tools.
4808+
4809+commit 5a6ee8f90b90f42d24de1561ee94855c576933f3
4810+Author: Oliver Kurth <okurth@vmware.com>
4811+Date: Wed Apr 10 14:14:53 2019 -0700
4812+
4813+ Common header file change not applicable to open-vm-tools.
4814+
4815+commit d759ae5ecfcc6f1069decdb2511ec32bf12a1663
4816+Author: Oliver Kurth <okurth@vmware.com>
4817+Date: Wed Apr 10 14:14:53 2019 -0700
4818+
4819+ Asyncsocket in low latency send mode may write into freed memory
4820
4821- *and only then*
4822- 3. Strengthen the defaults, affecting only callers who needed the stronger
4823- defaults to be correct. ... but that would be a separate change in the
4824- future.
4825+ Blast service encounters access violation exception during scale tests
4826+ in AsyncTCPSocketSend() at bora\lib\asyncsocket\asyncsocket.c.
4827
4828- Codegen differences (vmm.vmm64):
4829- --------------------------------
4830- The function that uncovered this was ST_HandleCrossCall, which invoked
4831- Atomic_And64.
4832+ Root cause is asock refcount is not incremented before the inline
4833+ invocation of AsyncTCPSocketSendCallback() in the low latency send
4834+ mode and asock is accessed right after this invocation to decrement
4835+ inLowLatencySendCb counter. AsyncTCPSocketSendCallback() on error
4836+ would invoke error handler which in turn could close the asock
4837+ leading to freeing of asock.
4838
4839- original w/o explicit compiler mem barrier in ST_HandleCrossCall:
4840- ...
4841- lock and QWORD PTR [rdx+0x0],rax
4842- movsxd rax,DWORD PTR [rip+offset] <-- load reordered after Atomic_And64
4843- lea rax,[rax+rax*2]
4844- lea rdi,[rax*8+0x0]
4845+ Issue wouldn't happen if AsyncWebSocket impl guarded all of its
4846+ transport->send(transport) calls with AsyncSocketAddRef(transport)
4847+ and AsyncSocketRelease(transport) but isn't the case currently.
4848
4849- with "memory" constraint, it's now identical to code w/an explicit
4850- compiler mem barrier (which was the workaround):
4851- ...
4852- mov edx,DWORD PTR [rip+offset] <-- load emitted prior to Atomic_And64
4853- ...
4854- lock and QWORD PTR [rsi+0x0],rax
4855- movsxd rax,edx <-- ... and used after Atomic_And64
4856- lea rax,[rax+rax*2]
4857- lea rdi,[rax*8+0x0]
4858+ Fix is to add and release asock reference around the inline
4859+ invocation of AsyncTCPSocketSendCallback().
4860+
4861+commit 325e244951790d7a848281fdb0236b0f6ee26996
4862+Author: Oliver Kurth <okurth@vmware.com>
4863+Date: Wed Apr 10 14:14:53 2019 -0700
4864+
4865+ Common header file change not applicable to open-vm-tools.
4866+
4867+commit b90344ea3696506c7d2a8022c340b6aafb6f6a91
4868+Author: Oliver Kurth <okurth@vmware.com>
4869+Date: Wed Apr 10 14:14:52 2019 -0700
4870+
4871+ Common header file change not applicable to open-vm-tools.
4872+
4873+commit 13f457aa737d8bca27f09862cf2a45df8f4a425b
4874+Author: Oliver Kurth <okurth@vmware.com>
4875+Date: Wed Apr 10 14:14:52 2019 -0700
4876+
4877+ InitiateFileTransferToGuest fails when uploading file to root directory
4878
4879- vmm.vmm64's .text section shrank 28 bytes
4880- vmware-vmx's .text section shrank 16 bytes
4881+ File upload to '/' on Linux fails the directory exists check.
4882+ This is caused by the file dirname being an empty string when parsed from
4883+ the guest file path name per the documented behavior of File_GetPathName.
4884
4885- Given that these are tiny fractions of the .text section, this suggests the
4886- problem was quite rare, which is why it escaped our attention until now.
4887- (Testing of vmx's lib/lock, lib/sync, lib/vprobe, and lib/misc saw no
4888- differences with GCC 4.4, 6.4, 7.1 or Clang)
4889+ The caller of File_GetPathName needs to handle the expected empty dirname
4890+ string when dealing with file path in the root ('/') filesystem on Linux.
4891
4892- While in there: nuke some tabs
4893+ Proposed fix is to replace the dirname string with the root path ('/') when:
4894+ A. dirname obtained from File_GetPathName call is an empty string AND
4895+ B. the original file path name starts with the path separator ('/') on
4896+ Linux (or *nix like) GOSes
4897
4898- Slated for a future change: vmkapi_atomic.h
4899+ This allows for the directory checks to inspect the root folder before
4900+ proceeding with the file transfer.
4901
4902-commit 333ac41076afff4e31ccb0d0688e1581e8c9019a
4903+commit 022121ce185662c05b3e1bf7166500f4f0f72bb2
4904 Author: Oliver Kurth <okurth@vmware.com>
4905-Date: Fri Mar 23 15:05:35 2018 -0700
4906+Date: Wed Apr 10 14:14:51 2019 -0700
4907
4908 Common header file change not applicable to open-vm-tools.
4909
4910-commit 8671bd8d4f68a490a5b20f1876f05797f3057c4b
4911+commit 3de5e45099ae309b59f371e1d71c88c80815f92d
4912 Author: Oliver Kurth <okurth@vmware.com>
4913-Date: Fri Mar 23 15:05:35 2018 -0700
4914+Date: Wed Apr 10 14:14:51 2019 -0700
4915
4916- vmcheck.c VmCheck_IsVirtualWorld(): Always check for a working backdoor.
4917-
4918- The specific checks for Xen and VirtualPC hypervisors currently happen
4919- only if the VMware hypervisor is not detected. The test for a working
4920- VMware backdoor is then done to avoid all other hypervisors.
4921+ Backing out the previous change to vixTools.c
4922
4923- In the case where running on a VMware hypervisor and the backdoor
4924- channel has been disabled such as with
4925+ As the code committed was not the one reviewed but another version of the
4926+ fix under exploration, reverting the previous change.
4927+
4928+commit e38e881a04cdf1684913c0e65596f4965e8d0c32
4929+Author: Oliver Kurth <okurth@vmware.com>
4930+Date: Wed Apr 10 14:14:51 2019 -0700
4931+
4932+ Common header file change not applicable to open-vm-tools.
4933+
4934+commit f682261e7997aa440523af63369e4b99e4823af7
4935+Author: Oliver Kurth <okurth@vmware.com>
4936+Date: Wed Apr 10 14:14:49 2019 -0700
4937+
4938+ InitiateFileTransferToGuest fails when uploading file to root directory
4939
4940- monitor_control.restrict_backdoor = "TRUE"
4941+ File upload to '/' on Linux fails the directory exists check.
4942+ This is caused by the file dirname being an empty string when parsed from the guest file path name per the documented behavior of File_GetPathName.
4943
4944- vmtoolsd, vmware-toolbox-cmd and vmware-checkvm will crash when
4945- attempting to get the version number of the installed VMware Tools.
4946+ The caller of File_GetPathName needs to handle the expected empty dirname string when dealing with file path in the root ('/') filesystem on Linux.
4947
4948- Added an additional test to detect Linux KVM with the existing tests
4949- for the Xen hypervisor and Microsoft Virtual PC. Avoid checking for
4950- a working backdoor if a non VMware hypervisor is seen.
4951+ Proposed fix is to replace the dirname string with the root path ('/') when:
4952+ A. dirname obtained from File_GetPathName call is an empty string AND
4953+ B. the original file path name starts with the path separator ('/') on Linux (or *nix like) GOSes
4954
4955- Microsoft Hv checking to be added later and is tracked in a separate PR.
4956- Oracle VirtualBox provides no unique CPUID vendor signature string.
4957+ This allows for the directory checks to inspect the root folder before proceedeing with the file transfer.
4958
4959-commit 09958952cc761075d5546b18bed0ce59260ec4db
4960+commit fcb7bb71a30f740b2d4bcfb8ae82733d044e6c00
4961 Author: Oliver Kurth <okurth@vmware.com>
4962-Date: Fri Mar 23 15:05:35 2018 -0700
4963+Date: Thu Mar 28 12:43:00 2019 -0700
4964
4965- FreeBSD open-vm-tools kernel modules compilations cannot locate <stdint.h>
4966-
4967- With the change for VMware headers to utilize the standard types
4968- defined in C99 standard headers, the compilation of FreeBSD kernel
4969- modules must specifically add /usr/include to the compilation
4970- options.
4971-
4972- CFLAGS += -isystem /usr/include
4973-
4974- This change updates the Makefiles's for FreeBSD kernel modules and
4975- drivers.
4976+ Make building without ICU the default for Linux.
4977
4978-commit cdf0406dc669f2284e1e810ac5820f123d46a50e
4979+commit bd84c8a35c7aedb2638bba087bc1756cfb9ccf9d
4980 Author: Oliver Kurth <okurth@vmware.com>
4981-Date: Fri Mar 23 15:05:35 2018 -0700
4982+Date: Thu Mar 28 12:43:00 2019 -0700
4983
4984- FreeBSD: Improper use of sysconf() for getpwent buffer size leads to
4985- vmtoolsd crash.
4986-
4987- On FreeBSD, sysconf(_SC_GETPW_R_SIZE_MAX) can return -1 if it has
4988- no hard limit ultimately resulting in an incorrect buffer size.
4989-
4990- This change is adapting the sysconf() ifixes done elsewhere to
4991- bora-vmsoft/services/plugins/vix/vixTools.c and updating the
4992- open-vm-tools AUTHORS file to share credit for the pull request.
4993+ Query disks for UUID
4994
4995- https://github.com/vmware/open-vm-tools/pull/238
4996+ As part of identifying a guest disk so it can be associated with a vmdk,
4997+ query its serial number, which is the same as the vmdk's ddb.uuid
4998
4999-commit e20e9bd49d244749ee6bcd4ea7d57a26d891afbe
5000+commit 076e7e10f24b53fcbd7b21d95ee4763f5f527e45
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches