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
diff --git a/ReleaseNotes.md b/ReleaseNotes.md
index 3f754e0..3912c83 100644
--- a/ReleaseNotes.md
+++ b/ReleaseNotes.md
@@ -1,9 +1,6 @@
1open-vm-tools 10.3.10 Release Notes1**Updated on: 17 OCT 2019**
2=================================
32
4**Updated on: 14 MAR 2019**3VMware Tools | 17 OCT 2019 | Build 14773994
5
6open-vm-tools | 14 MAR 2019 | Build 12406962
74
8Check for additions and updates to these release notes.5Check for additions and updates to these release notes.
96
@@ -15,32 +12,33 @@ The release notes cover the following topics:
15* [What's New](#whatsnew)12* [What's New](#whatsnew)
16* [Before You Begin](#beforeyoubegin)13* [Before You Begin](#beforeyoubegin)
17* [Internationalization](#i18n)14* [Internationalization](#i18n)
15* [Product Support Notice](#productsupport)
18* [End of Feature Support Notice](#endoffeaturesupport)16* [End of Feature Support Notice](#endoffeaturesupport)
17* [Compatibility Notes](#compatibility)
19* [Guest Operating System Customization Support](#guestop)18* [Guest Operating System Customization Support](#guestop)
20* [Interoperability Matrix](#interop)19* [Interoperability Matrix](#interop)
21* [Resolved Issues](#resolvedissues)
22* [Known Issues](#knownissues)20* [Known Issues](#knownissues)
2321
24What's New22What's New
25----------23----------
2624
27* **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.25* 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).
2826
29Before You Begin27Before You Begin
30----------------28----------------
3129
32**Important note about upgrading to ESXi 5.5 Update 3b or later**30**Important note about upgrading to ESXi 6.0 or later**
3331
34Resolution 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:32Resolution 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:
3533
36* [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)34* [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)
37* [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)35* [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)
38* [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)36* [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)
3937
40Internationalization38Internationalization
41--------------------39--------------------
4240
43open-vm-tools 10.3.10 is available in the following languages:41open-vm-tools 11.0.1 is available in the following languages:
4442
45* English43* English
46* French44* French
@@ -55,9 +53,12 @@ open-vm-tools 10.3.10 is available in the following languages:
55End of Feature Support Notice53End of Feature Support Notice
56-----------------------------54-----------------------------
5755
58* Support for Common Agent Framework (CAF) will be removed in the next major release of open-vm-tools.56* 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)
59* VMware Tools 10.3.5 freezes feature support for tar tools and OSPs  57
60 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)58Compatibility Notes
59-------------------
60
61* 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.
6162
62Guest Operating System Customization Support63Guest Operating System Customization Support
63--------------------------------------------64--------------------------------------------
@@ -72,35 +73,55 @@ The [VMware Product Interoperability Matrix](http://partnerweb.vmware.com/comp_
72Resolved Issues73Resolved Issues
73---------------74---------------
7475
75* **In certain cases, quiesced snapshots on Linux guests do not include backup manifests.**76* **Memory leak in vmtoolsd.**
7677
77 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.78 vmtoolsd leaks memory when the vSphere APIs ListGuestAliases and ListGuestMappedAliasers are used.
7879
79 This issue is fixed in this release.80 This issue is fixed in this release.
8081
81Known Issues82Known Issues
82------------83------------
8384
85* **Suspend Guest of Linux VM using any version of open-vm-tools may fail with some versions of SELinux.**
86
87 A "Suspend Guest" operation on a Linux guest running any version of open-vm-tools and with SELinux enabled may stall and ultimately fail.
88
89 The failure may appear as:
90   - a "Failed to suspend the virtual machine" message display.
91   - nothing happened and the "Suspend Guest" button is reactivated. IPv4 connections may be closed.
92   - a delayed suspend happens but the IPv4 addresses are lost when the VM is resumed.
93
94 Even an apparent "stall" which exceeds 30 seconds is an indication of the problem.
95
96 For more details, see [KB 74722](https://kb.vmware.com/s/article/74722).
97
98 Workaround:
99
100 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:
101
102 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).
103
84* **Drag functionality fails to work in Ubuntu.**104* **Drag functionality fails to work in Ubuntu.**
85 105
86 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.106 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.
87 107
108 Note: This issue is applicable for open-vm-tools running on Workstation and Fusion.
109
88 Workaround:110 Workaround:
89 111
90 * Add the modprobe.blacklist=vmwgfx linux kernel boot option.112 * Add the modprobe.blacklist=vmwgfx linux kernel boot option.
91 * To gain access to larger resolutions, remove svga.guestBackedPrimaryAware = "TRUE" option from the VMX file.113 * To gain access to larger resolutions, remove svga.guestBackedPrimaryAware = "TRUE" option from the VMX file.
92
93* **Shared Folders mount is unavailable on Linux VM.**114* **Shared Folders mount is unavailable on Linux VM.**
94 115
95 If the **Shared Folders** feature is enabled on a Linux VM while it is powered off, shared folders mount is not available on restart.116 If the **Shared Folders** feature is enabled on a Linux VM while it is powered off, shared folders mount is not available on restart.
96 117
97 Workaround:118 Note: This issue is applicable for open-vm-tools running on Workstation and Fusion.
98 119
99 If the VM is powered on, disable and enable the **Shared Folders** feature from the interface.120 Workaround:
100
101 For resolving the issue permanently, edit **/etc/fstab** and add an entry to mount the Shared Folders automatically on boot.
102
103 For example, add the line:
104 121
122 If the VM is powered on, disable and enable the **Shared Folders** feature from the interface.
123 For resolving the issue permanently, edit **/etc/fstab** and add an entry to mount the Shared Folders automatically on boot.
124 For example, add the line:
105 vmhgfs-fuse   /mnt/hgfs    fuse    defaults,allow\_other    0    0125 vmhgfs-fuse   /mnt/hgfs    fuse    defaults,allow\_other    0    0
106 126
127
diff --git a/debian/.gitlab-ci.yml b/debian/.gitlab-ci.yml
107new file mode 100644128new file mode 100644
index 0000000..62767c1
--- /dev/null
+++ b/debian/.gitlab-ci.yml
@@ -0,0 +1,14 @@
1include:
2 - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml
3 - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml
4
5variables:
6 RELEASE: 'unstable'
7 SALSA_CI_DISABLE_APTLY: 0
8 SALSA_CI_DISABLE_AUTOPKGTEST: 0
9 SALSA_CI_DISABLE_BLHC: 0
10 SALSA_CI_DISABLE_LINTIAN: 0
11 SALSA_CI_DISABLE_PIUPARTS: 0
12 SALSA_CI_DISABLE_REPROTEST: 0
13 SALSA_CI_DISABLE_BUILD_PACKAGE_ALL: 0
14 SALSA_CI_DISABLE_BUILD_PACKAGE_ANY: 0
diff --git a/debian/changelog b/debian/changelog
index a78baf1..2d5b6e8 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,4 @@
1<<<<<<< debian/changelog
1open-vm-tools (2:10.3.10-3ubuntu1) eoan; urgency=medium2open-vm-tools (2:10.3.10-3ubuntu1) eoan; urgency=medium
23
3 * Fix memory leaks in vix plugin (LP: #1847157)4 * Fix memory leaks in vix plugin (LP: #1847157)
@@ -12,6 +13,56 @@ open-vm-tools (2:10.3.10-3build1) eoan; urgency=medium
12 * No-change upload with strops.h and sys/strops.h removed in glibc.13 * No-change upload with strops.h and sys/strops.h removed in glibc.
1314
14 -- Matthias Klose <doko@ubuntu.com> Thu, 05 Sep 2019 11:05:22 +000015 -- Matthias Klose <doko@ubuntu.com> Thu, 05 Sep 2019 11:05:22 +0000
16=======
17open-vm-tools (2:11.0.1-2ubuntu0.19.10.1) eoan; urgency=medium
18
19 * Update to latest release v11 (LP: #1844834)
20
21 -- Christian Ehrhardt <christian.ehrhardt@canonical.com> Wed, 30 Oct 2019 09:58:25 +0100
22
23open-vm-tools (2:11.0.1-2) unstable; urgency=medium
24
25 * [76c600f] Fix segfault for fs devices without /
26 See https://github.com/vmware/open-vm-tools/issues/378 for details.
27 Thanks to Mo Zhou (Closes: #942692)
28
29 -- Bernd Zeimetz <bzed@debian.org> Tue, 22 Oct 2019 15:48:48 +0200
30
31open-vm-tools (2:11.0.1-1) unstable; urgency=medium
32
33 * [bb36e10] Update upstream source from tag 'upstream/11.0.1'
34 Update to upstream version '11.0.1'
35 with Debian dir 60c0d512096774b9a2a7cc9e4e94556b2893ae8a
36
37 -- Bernd Zeimetz <bzed@debian.org> Tue, 22 Oct 2019 09:40:50 +0200
38
39open-vm-tools (2:11.0.0-2) unstable; urgency=medium
40
41 * [4cfe383] Update Vcs-Git/Browser to point to salsa.
42 * [bc253ad] Remove .travis.yml, add debian/.gitlab-ci.yml
43 * [c92ca3a] Add add_patch.sh script to add patches from upstream.
44 * [1d9b491] Add patch to remove deprecated inline functions
45 * [3e2e307] Rename lintian-override file properly
46
47 -- Bernd Zeimetz <bzed@debian.org> Tue, 15 Oct 2019 23:25:24 +0200
48
49open-vm-tools (2:11.0.0-1) unstable; urgency=medium
50
51 [ goldstar611 ]
52 * [c138871] Ensure VGAuthService starts after AppArmor
53 https://gitlab.com/apparmor/apparmor/issues/13
54
55 [ Bernd Zeimetz ]
56 * [28ef841] New upstream version 11.0.0~0
57 * [f78ed2d] New upstream version 11.0.0
58 Closes: #940853
59 * [19efc80] Revert "Revert "Removing libdumbnet-dev.""
60 This reverts commit 31177fab964d92687501ab81774440a9b8d09e39.
61 * [bc14a8b] snapshot changelog
62 * [1c5e9ea] Dropping patches that were picked from upstream
63
64 -- Bernd Zeimetz <bzed@debian.org> Mon, 30 Sep 2019 14:37:27 +0200
65>>>>>>> debian/changelog
1566
16open-vm-tools (2:10.3.10-3) unstable; urgency=medium67open-vm-tools (2:10.3.10-3) unstable; urgency=medium
1768
diff --git a/debian/control b/debian/control
index c568dac..6477170 100644
--- a/debian/control
+++ b/debian/control
@@ -5,7 +5,7 @@ Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
5XSBC-Original-Maintainer: Bernd Zeimetz <bzed@debian.org>5XSBC-Original-Maintainer: Bernd Zeimetz <bzed@debian.org>
6Build-Depends:6Build-Depends:
7 debhelper (>= 11~), doxygen, libcunit1-dev,7 debhelper (>= 11~), doxygen, libcunit1-dev,
8 libdumbnet-dev, libfuse-dev, libgtkmm-3.0-dev, libgtk-3-dev,8 libfuse-dev, libgtkmm-3.0-dev, libgtk-3-dev,
9 libicu-dev, libnotify-dev, libpam0g-dev, libprocps-dev, libx11-dev,9 libicu-dev, libnotify-dev, libpam0g-dev, libprocps-dev, libx11-dev,
10 libxinerama-dev, libxss-dev, libxtst-dev,10 libxinerama-dev, libxss-dev, libxtst-dev,
11 libmspack-dev,11 libmspack-dev,
@@ -15,8 +15,8 @@ Build-Depends:
15 libdrm-dev,15 libdrm-dev,
16Standards-Version: 4.4.016Standards-Version: 4.4.0
17Homepage: https://github.com/vmware/open-vm-tools17Homepage: https://github.com/vmware/open-vm-tools
18Vcs-Git: https://github.com/bzed/pkg-open-vm-tools.git18Vcs-Git: https://salsa.debian.org/vmware-packaging-team/pkg-open-vm-tools.git
19Vcs-Browser: https://github.com/bzed/pkg-open-vm-tools19Vcs-Browser: https://salsa.debian.org/vmware-packaging-team/pkg-open-vm-tools
2020
21Package: open-vm-tools21Package: open-vm-tools
22Architecture: amd64 i38622Architecture: amd64 i386
diff --git a/debian/open-vm-tools.lintian b/debian/open-vm-tools.lintian-overrides
23similarity index 100%23similarity index 100%
24rename from debian/open-vm-tools.lintian24rename from debian/open-vm-tools.lintian
25rename to debian/open-vm-tools.lintian-overrides25rename to debian/open-vm-tools.lintian-overrides
diff --git a/debian/open-vm-tools.vgauth.service b/debian/open-vm-tools.vgauth.service
index 86f03f2..1b00ca1 100644
--- a/debian/open-vm-tools.vgauth.service
+++ b/debian/open-vm-tools.vgauth.service
@@ -4,6 +4,7 @@ Documentation=http://github.com/vmware/open-vm-tools
4ConditionVirtualization=vmware4ConditionVirtualization=vmware
5DefaultDependencies=no5DefaultDependencies=no
6After=systemd-remount-fs.service systemd-tmpfiles-setup.service6After=systemd-remount-fs.service systemd-tmpfiles-setup.service
7After=apparmor.service
7PartOf=open-vm-tools.service8PartOf=open-vm-tools.service
89
9[Service]10[Service]
diff --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
10similarity index 60%11similarity index 60%
11rename from debian/patches/gcc9-drop-obsolete-G_INLINE_FUNC.patch12rename from debian/patches/gcc9-drop-obsolete-G_INLINE_FUNC.patch
12rename to debian/patches/89c0d4445_GitHub-Issue-367.-Remove-references-to-deprecated-G_INLINE_FUNC13rename to debian/patches/89c0d4445_GitHub-Issue-367.-Remove-references-to-deprecated-G_INLINE_FUNC
index 490f616..a28cf83 100644
--- a/debian/patches/gcc9-drop-obsolete-G_INLINE_FUNC.patch
+++ b/debian/patches/89c0d4445_GitHub-Issue-367.-Remove-references-to-deprecated-G_INLINE_FUNC
@@ -1,16 +1,22 @@
1Description: G_INLINE_FUNC macro is deprecated, remove it1From 89c0d444567eb525e8d083fb564c46d68e96660c Mon Sep 17 00:00:00 2001
2 GCC-9 deprecated detection is much harder, and even error disables won't2From: Oliver Kurth <okurth@vmware.com>
3 catch deprecated macros. Per [1] this can now be safely replaced3Date: Mon, 30 Sep 2019 16:24:27 -0700
4 with "static inline"4Subject: [PATCH] GitHub Issue #367. Remove references to deprecated
5 [1]: https://developer.gnome.org/glib/stable/glib-Miscellaneous-Macros.html#G-INLINE-FUNC:CAPS5 G_INLINE_FUNC.
6Forwarded: yes (https://github.com/vmware/open-vm-tools/issues/367)
7Author: Christian Ehrhardt <christian.ehrhardt@canonical.com>
8Bug-Ubuntu: https://bugs.launchpad.net/bugs/1842301
9Last-Update: 2019-09-03
106
7G_INLINE_FUNC was a work-around for compilers that didn't support
8static inline. Change uses of it to static inline.
9---
10 open-vm-tools/lib/include/vmware/tools/plugin.h | 2 +-
11 open-vm-tools/lib/include/vmware/tools/threadPool.h | 8 ++++----
12 open-vm-tools/lib/include/vmware/tools/utils.h | 9 ---------
13 3 files changed, 5 insertions(+), 14 deletions(-)
14
15diff --git a/open-vm-tools/lib/include/vmware/tools/plugin.h b/open-vm-tools/lib/include/vmware/tools/plugin.h
16index f9acc6a29..deefd1f3d 100644
11--- a/open-vm-tools/lib/include/vmware/tools/plugin.h17--- a/open-vm-tools/lib/include/vmware/tools/plugin.h
12+++ b/open-vm-tools/lib/include/vmware/tools/plugin.h18+++ b/open-vm-tools/lib/include/vmware/tools/plugin.h
13@@ -281,7 +281,7 @@ typedef struct ToolsAppCtx {19@@ -290,7 +290,7 @@ typedef struct ToolsAppCtx {
14 *20 *
15 * @return TRUE if COM is initialized when the function returns.21 * @return TRUE if COM is initialized when the function returns.
16 */22 */
@@ -19,6 +25,8 @@ Last-Update: 2019-09-03
19 ToolsCore_InitializeCOM(ToolsAppCtx *ctx)25 ToolsCore_InitializeCOM(ToolsAppCtx *ctx)
20 {26 {
21 if (!ctx->comInitialized) {27 if (!ctx->comInitialized) {
28diff --git a/open-vm-tools/lib/include/vmware/tools/threadPool.h b/open-vm-tools/lib/include/vmware/tools/threadPool.h
29index 3f2082b3e..5880fbcff 100644
22--- a/open-vm-tools/lib/include/vmware/tools/threadPool.h30--- a/open-vm-tools/lib/include/vmware/tools/threadPool.h
23+++ b/open-vm-tools/lib/include/vmware/tools/threadPool.h31+++ b/open-vm-tools/lib/include/vmware/tools/threadPool.h
24@@ -91,7 +91,7 @@ typedef struct ToolsCorePool {32@@ -91,7 +91,7 @@ typedef struct ToolsCorePool {
@@ -39,7 +47,7 @@ Last-Update: 2019-09-03
39 ToolsCorePool_SubmitTask(ToolsAppCtx *ctx,47 ToolsCorePool_SubmitTask(ToolsAppCtx *ctx,
40 ToolsCorePoolCb cb,48 ToolsCorePoolCb cb,
41 gpointer data,49 gpointer data,
42@@ -153,7 +153,7 @@ ToolsCorePool_SubmitTask(ToolsAppCtx *ct50@@ -153,7 +153,7 @@ ToolsCorePool_SubmitTask(ToolsAppCtx *ctx,
43 *******************************************************************************51 *******************************************************************************
44 */52 */
45 53
@@ -48,7 +56,7 @@ Last-Update: 2019-09-03
48 ToolsCorePool_CancelTask(ToolsAppCtx *ctx,56 ToolsCorePool_CancelTask(ToolsAppCtx *ctx,
49 guint taskId)57 guint taskId)
50 {58 {
51@@ -197,7 +197,7 @@ ToolsCorePool_CancelTask(ToolsAppCtx *ct59@@ -197,7 +197,7 @@ ToolsCorePool_CancelTask(ToolsAppCtx *ctx,
52 *******************************************************************************60 *******************************************************************************
53 */61 */
54 62
@@ -57,3 +65,26 @@ Last-Update: 2019-09-03
57 ToolsCorePool_StartThread(ToolsAppCtx *ctx,65 ToolsCorePool_StartThread(ToolsAppCtx *ctx,
58 const gchar *threadName,66 const gchar *threadName,
59 ToolsCorePoolCb cb,67 ToolsCorePoolCb cb,
68diff --git a/open-vm-tools/lib/include/vmware/tools/utils.h b/open-vm-tools/lib/include/vmware/tools/utils.h
69index f65745906..a3292d5c0 100644
70--- a/open-vm-tools/lib/include/vmware/tools/utils.h
71+++ b/open-vm-tools/lib/include/vmware/tools/utils.h
72@@ -51,15 +51,6 @@
73 # include <sys/time.h>
74 #endif
75
76-
77-/* Work around a glib limitation: it doesn't set G_INLINE_FUNC on Win32. */
78-#if defined(G_PLATFORM_WIN32)
79-# if defined(G_INLINE_FUNC)
80-# undef G_INLINE_FUNC
81-# endif
82-# define G_INLINE_FUNC static __inline
83-#endif
84-
85 #ifndef ABS
86 # define ABS(x) (((x) >= 0) ? (x) : -(x))
87 #endif
88--
892.23.0
90
diff --git a/debian/patches/add_patch.sh b/debian/patches/add_patch.sh
60new file mode 10075591new file mode 100755
index 0000000..2085269
--- /dev/null
+++ b/debian/patches/add_patch.sh
@@ -0,0 +1,14 @@
1#!/bin/bash
2
3set -e
4
5patchpath=`dirname ${0}`
6
7for hash in $@; do
8 fname=`git log -1 --pretty=format:'%h_%f' ${hash}`
9 git format-patch --stdout -N -1 ${hash} > "${fname}"
10 if ! grep -q ${fname} series; then
11 echo "${fname}" >> series
12 fi
13done
14
diff --git a/debian/patches/fix-buster-OS-reporting b/debian/patches/fix-buster-OS-reporting
0deleted file mode 10064415deleted file mode 100644
index eb9b215..0000000
--- a/debian/patches/fix-buster-OS-reporting
+++ /dev/null
@@ -1,11 +0,0 @@
1--- a/open-vm-tools/lib/misc/hostinfoPosix.c
2+++ b/open-vm-tools/lib/misc/hostinfoPosix.c
3@@ -814,7 +814,7 @@ HostinfoGetOSShortName(char *distro,
4 Str_Strcpy(distroShort, STR_OS_DEBIAN_8, distroShortSize);
5 } else if (strstr(distroLower, "9.")) {
6 Str_Strcpy(distroShort, STR_OS_DEBIAN_9, distroShortSize);
7- } else if (strstr(distroLower, "10.")) {
8+ } else if (strstr(distroLower, "10")) {
9 Str_Strcpy(distroShort, STR_OS_DEBIAN_10, distroShortSize);
10 }
11 } else if (StrUtil_StartsWith(distroLower, "enterprise linux") ||
diff --git a/debian/patches/fix_zfs_fs_detection b/debian/patches/fix_zfs_fs_detection
12new file mode 1006440new file mode 100644
index 0000000..4fed620
--- /dev/null
+++ b/debian/patches/fix_zfs_fs_detection
@@ -0,0 +1,13 @@
1--- a/open-vm-tools/services/plugins/guestInfo/diskInfo.c
2+++ b/open-vm-tools/services/plugins/guestInfo/diskInfo.c
3@@ -826,8 +826,9 @@ GuestInfoGetDiskDevice(const char *fsNam
4 /* Not an LVM; check if a basic block device. */
5 char blockDevPath[PATH_MAX];
6
7+ char* x = strrchr(fsName, '/');
8 Str_Snprintf(blockDevPath, PATH_MAX, "%s/%s", LINUX_SYS_BLOCK_DIR,
9- strrchr(fsName, '/') + 1);
10+ x != NULL ? x+1 : "");
11 GuestInfoLinuxBlockDevice(blockDevPath, partEntry, 1 /* first and only*/);
12 }
13
diff --git a/debian/patches/gcc9 b/debian/patches/gcc9
0deleted file mode 10064414deleted file mode 100644
index 5499f44..0000000
--- a/debian/patches/gcc9
+++ /dev/null
@@ -1,1212 +0,0 @@
1commit c68172ef7f2d4f116078e2aba82986a8cab0b16e
2Author: Oliver Kurth <okurth@vmware.com>
3Date: Wed Feb 27 14:39:55 2019 -0800
4
5 GCC 9 caught several misaligned accesses and a format overflow.
6
7 GCC 9 generated several instances of "Werror=address-of-packed-member"
8 in HGFS Fuse support code and hgfsmounter. There is also one instance of
9 "Werror=format-overflow" generated in util_misc.c.
10
11 According to stackoverflow discussion -
12 https://stackoverflow.com/questions/8568432/is-gccs-attribute-packed-pragma-pack-unsafe,
13 x86 hardware handles misaligned access and does not exhibit any real
14 issues. However, GCC 9 generates misaligned access warning
15 ("Werror=address-of-packed-member) for all architectures. In case of
16 open-vm-tools build we treat warnings as errors and also we want code
17 to be as portable as possible in general unless there is a reason not
18 to do so.
19
20--- a/open-vm-tools/hgfsmounter/hgfsmounter.c
21+++ b/open-vm-tools/hgfsmounter/hgfsmounter.c
22@@ -1,5 +1,5 @@
23 /*********************************************************
24- * Copyright (C) 2006-2017 VMware, Inc. All rights reserved.
25+ * Copyright (C) 2006-2019 VMware, Inc. All rights reserved.
26 *
27 * This program is free software; you can redistribute it and/or modify it
28 * under the terms of the GNU Lesser General Public License as published
29@@ -514,11 +514,13 @@
30 HgfsMountInfo *mountInfo, // OUT: mount data
31 int *flags) // OUT: mount flags
32 {
33+ unsigned short fmask = 0;
34 ASSERT(option);
35 ASSERT(mountInfo);
36
37- if (ParseMask(option, &mountInfo->fmask)) {
38- LOG("Setting mount fmask to %o\n", mountInfo->fmask);
39+ if (ParseMask(option, &fmask)) {
40+ LOG("Setting mount fmask to %o\n", fmask);
41+ mountInfo->fmask = fmask;
42 return TRUE;
43 }
44
45@@ -548,11 +550,13 @@
46 HgfsMountInfo *mountInfo, // OUT: mount data
47 int *flags) // OUT: mount flags
48 {
49+ unsigned short dmask = 0;
50 ASSERT(option);
51 ASSERT(mountInfo);
52
53- if (ParseMask(option, &mountInfo->dmask)) {
54- LOG("Setting mount dmask to %o\n", mountInfo->dmask);
55+ if (ParseMask(option, &dmask)) {
56+ LOG("Setting mount dmask to %o\n", dmask);
57+ mountInfo->dmask = dmask;
58 return TRUE;
59 }
60
61--- a/open-vm-tools/lib/hgfsServer/hgfsServer.c
62+++ b/open-vm-tools/lib/hgfsServer/hgfsServer.c
63@@ -1,5 +1,5 @@
64 /*********************************************************
65- * Copyright (C) 1998-2018 VMware, Inc. All rights reserved.
66+ * Copyright (C) 1998-2019 VMware, Inc. All rights reserved.
67 *
68 * This program is free software; you can redistribute it and/or modify it
69 * under the terms of the GNU Lesser General Public License as published
70@@ -6536,11 +6536,13 @@
71 payload = &reply->payload[0];
72 }
73 if (payload) {
74+ uint32 actualSize = 0;
75 status = HgfsPlatformReadFile(readFd, input->session, offset,
76 requiredSize, payload,
77- &reply->actualSize);
78+ &actualSize);
79 if (HGFS_ERROR_SUCCESS == status) {
80 reply->reserved = 0;
81+ reply->actualSize = actualSize;
82 replyPayloadSize = sizeof *reply;
83
84 if (readUseDataBuffer) {
85@@ -6556,11 +6558,13 @@
86 break;
87 }
88 case HGFS_OP_READ: {
89+ uint32 actualSize = 0;
90 HgfsReplyRead *reply = replyRead;
91
92 status = HgfsPlatformReadFile(readFd, input->session, offset, requiredSize,
93- reply->payload, &reply->actualSize);
94+ reply->payload, &actualSize);
95 if (HGFS_ERROR_SUCCESS == status) {
96+ reply->actualSize = actualSize;
97 replyPayloadSize = sizeof *reply + reply->actualSize;
98 } else {
99 LOG(4, ("%s: V1 Failed to read-> %d.\n", __FUNCTION__, status));
100--- a/open-vm-tools/lib/misc/util_misc.c
101+++ b/open-vm-tools/lib/misc/util_misc.c
102@@ -1,5 +1,5 @@
103 /*********************************************************
104- * Copyright (C) 1998-2018 VMware, Inc. All rights reserved.
105+ * Copyright (C) 1998-2019 VMware, Inc. All rights reserved.
106 *
107 * This program is free software; you can redistribute it and/or modify it
108 * under the terms of the GNU Lesser General Public License as published
109@@ -719,8 +719,8 @@
110 ASSERT(!freeChunk[i]);
111 chunks[i] = expand;
112 if (chunks[i] == NULL) {
113- Log("%s: Cannot allocate memory to expand \"%s\" in \"%s\".\n",
114- __FUNCTION__, expand, fileName);
115+ Log("%s: Cannot allocate memory to expand $ in \"%s\".\n",
116+ __FUNCTION__, fileName);
117 goto out;
118 }
119 chunkSize[i] = strlen(expand);
120--- a/open-vm-tools/vmhgfs-fuse/dir.c
121+++ b/open-vm-tools/vmhgfs-fuse/dir.c
122@@ -1,5 +1,5 @@
123 /*********************************************************
124- * Copyright (C) 2013 VMware, Inc. All rights reserved.
125+ * Copyright (C) 2013,2019 VMware, Inc. All rights reserved.
126 *
127 * This program is free software; you can redistribute it and/or modify it
128 * under the terms of the GNU Lesser General Public License as published
129@@ -54,38 +54,53 @@
130 HgfsOp opUsed, // IN: Op to be used
131 HgfsReq *req) // IN/OUT: Packet to write into
132 {
133- char *name;
134- unsigned int *nameLength = NULL;
135 size_t reqSize;
136- int result;
137
138 ASSERT(path);
139 ASSERT(req);
140 LOG(4, ("Path = %s \n", path));
141 switch (opUsed) {
142 case HGFS_OP_SEARCH_OPEN_V3: {
143+ int result;
144 HgfsRequestSearchOpenV3 *requestV3 = HgfsGetRequestPayload(req);
145
146- /* We'll use these later. */
147- name = requestV3->dirName.name;
148- nameLength = &requestV3->dirName.length;
149 requestV3->dirName.flags = 0;
150 requestV3->dirName.caseType = HGFS_FILE_NAME_CASE_SENSITIVE;
151 requestV3->dirName.fid = HGFS_INVALID_HANDLE;
152 requestV3->reserved = 0;
153 reqSize = sizeof(*requestV3) + HgfsGetRequestHeaderSize();
154+ /* Convert to CP name. */
155+ result = CPName_ConvertTo(path,
156+ HGFS_LARGE_PACKET_MAX - (reqSize - 1),
157+ requestV3->dirName.name);
158+ if (result < 0) {
159+ LOG(4, ("CP conversion failed\n"));
160+ return -EINVAL;
161+ }
162+ LOG(4, ("After conversion = %s\n", requestV3->dirName.name));
163+ requestV3->dirName.length = result;
164+ reqSize += result;
165 break;
166 }
167
168 case HGFS_OP_SEARCH_OPEN: {
169+ int result;
170 HgfsRequestSearchOpen *request;
171
172 request = (HgfsRequestSearchOpen *)(HGFS_REQ_PAYLOAD(req));
173
174- /* We'll use these later. */
175- name = request->dirName.name;
176- nameLength = &request->dirName.length;
177 reqSize = sizeof *request;
178+ /* Convert to CP name. */
179+ result = CPName_ConvertTo(path,
180+ HGFS_LARGE_PACKET_MAX - (reqSize - 1),
181+ request->dirName.name);
182+ if (result < 0) {
183+ LOG(4, ("CP conversion failed\n"));
184+ return -EINVAL;
185+ }
186+ LOG(4, ("After conversion = %s\n", request->dirName.name));
187+ request->dirName.length = result;
188+ reqSize += result;
189 break;
190 }
191
192@@ -94,21 +109,7 @@
193 return -EPROTO;
194 }
195
196- /* Convert to CP name. */
197-
198- LOG(4, ("After buildPath = %s\n", path));
199- result = CPName_ConvertTo(path,
200- HGFS_LARGE_PACKET_MAX - (reqSize - 1),
201- name);
202- if (result < 0) {
203- LOG(4, ("CP conversion failed\n"));
204- return -EINVAL;
205- }
206-
207- LOG(4, ("After conversion = %s\n", name));
208-
209- *nameLength = (uint32) result;
210- req->payloadSize = reqSize + result;
211+ req->payloadSize = reqSize;
212
213 /* Fill in header here as payloadSize needs to be there. */
214 HgfsPackHeader(req, opUsed);
215@@ -149,7 +150,6 @@
216 int result;
217 HgfsOp opUsed;
218 HgfsStatus replyStatus;
219- HgfsHandle *replySearch;
220
221 ASSERT(path);
222 req = HgfsGetNewRequest();
223@@ -161,16 +161,6 @@
224
225 retry:
226 opUsed = hgfsVersionSearchOpen;
227- if (opUsed == HGFS_OP_SEARCH_OPEN_V3) {
228- HgfsReplySearchOpenV3 *requestV3 = HgfsGetReplyPayload(req);
229-
230- replySearch = &requestV3->search;
231-
232- } else {
233- HgfsReplySearchOpen *request = (HgfsReplySearchOpen *)HGFS_REQ_PAYLOAD(req);
234-
235- replySearch = &request->search;
236- }
237
238 result = HgfsPackDirOpenRequest(path, opUsed, req);
239 if (result != 0) {
240@@ -187,8 +177,14 @@
241
242 switch (result) {
243 case 0:
244- *handle = *replySearch;
245- LOG(6, ("Set handle to %u\n", *replySearch));
246+ if (opUsed == HGFS_OP_SEARCH_OPEN_V3) {
247+ HgfsReplySearchOpenV3 *requestV3 = HgfsGetReplyPayload(req);
248+ *handle = requestV3->search;
249+ } else {
250+ HgfsReplySearchOpen *request = (HgfsReplySearchOpen *)HGFS_REQ_PAYLOAD(req);
251+ *handle = request->search;
252+ }
253+ LOG(6, ("Set handle to %u\n", *handle));
254 break;
255 case -EPROTO:
256 /* Retry with older version(s). Set globally. */
257@@ -626,25 +622,30 @@
258 HgfsOp opUsed, // IN: Op to be used.
259 HgfsReq *req) // IN/OUT: Packet to write into
260 {
261- char *fileName = NULL;
262- uint32 *fileNameLength;
263 size_t reqSize;
264- int result;
265+
266
267 ASSERT(req);
268
269 switch (opUsed) {
270 case HGFS_OP_CREATE_DIR_V3: {
271+ int result;
272 HgfsRequestCreateDirV3 *requestV3 = HgfsGetRequestPayload(req);
273
274 reqSize = sizeof(*requestV3) + HgfsGetRequestHeaderSize();
275- /* We'll use these later. */
276- fileName = requestV3->fileName.name;
277- fileNameLength = &requestV3->fileName.length;
278 requestV3->fileName.flags = 0;
279 requestV3->fileName.fid = HGFS_INVALID_HANDLE;
280 requestV3->fileName.caseType = HGFS_FILE_NAME_CASE_SENSITIVE;
281-
282+ /* Convert to CP name. */
283+ result = CPName_ConvertTo(path,
284+ HGFS_LARGE_PACKET_MAX - (reqSize - 1),
285+ requestV3->fileName.name);
286+ if (result < 0) {
287+ LOG(4, ("CP conversion failed.\n"));
288+ return -EINVAL;
289+ }
290+ requestV3->fileName.length = result;
291+ reqSize += result;
292 requestV3->mask = HGFS_CREATE_DIR_MASK;
293
294 /* Set permissions. */
295@@ -656,15 +657,23 @@
296 break;
297 }
298 case HGFS_OP_CREATE_DIR_V2: {
299+ int result;
300 HgfsRequestCreateDirV2 *requestV2;
301
302 requestV2 = (HgfsRequestCreateDirV2 *)(HGFS_REQ_PAYLOAD(req));
303
304- /* We'll use these later. */
305- fileName = requestV2->fileName.name;
306- fileNameLength = &requestV2->fileName.length;
307 reqSize = sizeof *requestV2;
308
309+ /* Convert to CP name. */
310+ result = CPName_ConvertTo(path,
311+ HGFS_LARGE_PACKET_MAX - (reqSize - 1),
312+ requestV2->fileName.name);
313+ if (result < 0) {
314+ LOG(4, ("CP conversion failed.\n"));
315+ return -EINVAL;
316+ }
317+ requestV2->fileName.length = result;
318+ reqSize += result;
319 requestV2->mask = HGFS_CREATE_DIR_MASK;
320
321 /* Set permissions. */
322@@ -675,15 +684,22 @@
323 break;
324 }
325 case HGFS_OP_CREATE_DIR: {
326+ int result;
327 HgfsRequestCreateDir *request;
328
329 request = (HgfsRequestCreateDir *)(HGFS_REQ_PAYLOAD(req));
330
331- /* We'll use these later. */
332- fileName = request->fileName.name;
333- fileNameLength = &request->fileName.length;
334 reqSize = sizeof *request;
335-
336+ /* Convert to CP name. */
337+ result = CPName_ConvertTo(path,
338+ HGFS_LARGE_PACKET_MAX - (reqSize - 1),
339+ request->fileName.name);
340+ if (result < 0) {
341+ LOG(4, ("CP conversion failed.\n"));
342+ return -EINVAL;
343+ }
344+ request->fileName.length = result;
345+ reqSize += result;
346 /* Set permissions. */
347 request->permissions = (permsMode & S_IRWXU) >> 6;
348 break;
349@@ -693,18 +709,7 @@
350 return -EPROTO;
351 }
352
353-
354- /* Convert to CP name. */
355- result = CPName_ConvertTo(path,
356- HGFS_LARGE_PACKET_MAX - (reqSize - 1),
357- fileName);
358- if (result < 0) {
359- LOG(4, ("CP conversion failed.\n"));
360- return -EINVAL;
361- }
362-
363- *fileNameLength = result;
364- req->payloadSize = reqSize + result;
365+ req->payloadSize = reqSize;
366
367 /* Fill in header here as payloadSize needs to be there. */
368 HgfsPackHeader(req, opUsed);
369@@ -827,8 +832,6 @@
370 HgfsReq *req = NULL;
371 int result = 0;
372 HgfsStatus replyStatus;
373- char *fileName = NULL;
374- uint32 *fileNameLength;
375 uint32 reqSize;
376 HgfsOp opUsed;
377 HgfsAttrInfo newAttr = {0};
378@@ -862,8 +865,17 @@
379
380 reqSize = sizeof(*request) + HgfsGetRequestHeaderSize();
381 request->hints = 0;
382- fileName = request->fileName.name;
383- fileNameLength = &request->fileName.length;
384+ /* Convert to CP name. */
385+ result = CPName_ConvertTo(path,
386+ HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize),
387+ request->fileName.name);
388+ if (result < 0) {
389+ LOG(4, ("CP conversion failed.\n"));
390+ result = -EINVAL;
391+ goto out;
392+ }
393+ request->fileName.length = result;
394+ reqSize += result;
395 request->fileName.fid = HGFS_INVALID_HANDLE;
396 request->fileName.flags = 0;
397 request->fileName.caseType = HGFS_FILE_NAME_DEFAULT_CASE;
398@@ -874,24 +886,21 @@
399
400 request = (HgfsRequestDelete *)(HGFS_REQ_PAYLOAD(req));
401 /* Fill out the request packet. */
402- fileName = request->fileName.name;
403- fileNameLength = &request->fileName.length;
404 reqSize = sizeof *request;
405+ /* Convert to CP name. */
406+ result = CPName_ConvertTo(path,
407+ HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize),
408+ request->fileName.name);
409+ if (result < 0) {
410+ LOG(4, ("CP conversion failed.\n"));
411+ result = -EINVAL;
412+ goto out;
413+ }
414+ request->fileName.length = result;
415+ reqSize += result;
416 }
417
418-
419- /* Convert to CP name. */
420- result = CPName_ConvertTo(path,
421- HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize),
422- fileName);
423- if (result < 0) {
424- LOG(4, ("CP conversion failed.\n"));
425- result = -EINVAL;
426- goto out;
427- }
428-
429- *fileNameLength = result;
430- req->payloadSize = reqSize + result;
431+ req->payloadSize = reqSize;
432
433 /* Fill in header here as payloadSize needs to be there. */
434 HgfsPackHeader(req, opUsed);
435--- a/open-vm-tools/vmhgfs-fuse/file.c
436+++ b/open-vm-tools/vmhgfs-fuse/file.c
437@@ -66,10 +66,7 @@
438 HgfsOp opUsed, // IN: Op to use
439 HgfsReq *req) // IN/OUT: Packet to write into
440 {
441- char *name;
442- uint32 *nameLength;
443 size_t reqSize;
444- int result;
445 int openMode, openFlags;
446
447 ASSERT(path);
448@@ -88,14 +85,22 @@
449
450 switch (opUsed) {
451 case HGFS_OP_OPEN_V3: {
452+ int result;
453 HgfsRequestOpenV3 *requestV3 = HgfsGetRequestPayload(req);
454
455 reqSize = sizeof(*requestV3) + HgfsGetRequestHeaderSize();
456
457- /* We'll use these later. */
458- name = requestV3->fileName.name;
459- nameLength = &requestV3->fileName.length;
460+ /* Convert to CP name. */
461+ result = CPName_ConvertTo(path,
462+ HGFS_LARGE_PACKET_MAX - (reqSize - 1),
463+ requestV3->fileName.name);
464+ if (result < 0) {
465+ LOG(4, ("CP conversion failed.\n"));
466+ return -EINVAL;
467+ }
468
469+ requestV3->fileName.length = result;
470+ reqSize += result;
471 /* Linux clients need case-sensitive lookups. */
472 requestV3->fileName.flags = 0;
473 requestV3->fileName.caseType = HGFS_FILE_NAME_CASE_SENSITIVE;
474@@ -122,15 +127,24 @@
475 }
476
477 case HGFS_OP_OPEN_V2: {
478+ int result;
479 HgfsRequestOpenV2 *requestV2;
480
481 requestV2 = (HgfsRequestOpenV2 *)(HGFS_REQ_PAYLOAD(req));
482
483- /* We'll use these later. */
484- name = requestV2->fileName.name;
485- nameLength = &requestV2->fileName.length;
486 reqSize = sizeof *requestV2;
487
488+ /* Convert to CP name. */
489+ result = CPName_ConvertTo(path,
490+ HGFS_LARGE_PACKET_MAX - (reqSize - 1),
491+ requestV2->fileName.name);
492+ if (result < 0) {
493+ LOG(4, ("CP conversion failed.\n"));
494+ return -EINVAL;
495+ }
496+
497+ requestV2->fileName.length = result;
498+ reqSize += result;
499 requestV2->mask = mask;
500 requestV2->mode = openMode;
501 requestV2->flags = openFlags;
502@@ -148,14 +162,23 @@
503 break;
504 }
505 case HGFS_OP_OPEN: {
506+ int result;
507 HgfsRequestOpen *request;
508
509 request = (HgfsRequestOpen *)(HGFS_REQ_PAYLOAD(req));
510- /* We'll use these later. */
511- name = request->fileName.name;
512- nameLength = &request->fileName.length;
513 reqSize = sizeof *request;
514
515+ /* Convert to CP name. */
516+ result = CPName_ConvertTo(path,
517+ HGFS_LARGE_PACKET_MAX - (reqSize - 1),
518+ request->fileName.name);
519+ if (result < 0) {
520+ LOG(4, ("CP conversion failed.\n"));
521+ return -EINVAL;
522+ }
523+
524+ request->fileName.length = result;
525+ reqSize += result;
526 request->mode = openMode;
527 request->flags = openFlags;
528
529@@ -168,18 +191,7 @@
530 return -EPROTO;
531 }
532
533-
534- /* Convert to CP name. */
535- result = CPName_ConvertTo(path,
536- HGFS_LARGE_PACKET_MAX - (reqSize - 1),
537- name);
538- if (result < 0) {
539- LOG(4, ("CP conversion failed.\n"));
540- return -EINVAL;
541- }
542-
543- *nameLength = (uint32) result;
544- req->payloadSize = reqSize + result;
545+ req->payloadSize = reqSize;
546
547 /* Fill in header here as payloadSize needs to be there. */
548 HgfsPackHeader(req, opUsed);
549@@ -915,10 +927,6 @@
550 HgfsRename(const char* from, const char* to)
551 {
552 HgfsReq *req = NULL;
553- char *oldName;
554- char *newName;
555- uint32 *oldNameLength;
556- uint32 *newNameLength;
557 int result = 0;
558 uint32 reqSize;
559 HgfsOp opUsed;
560@@ -942,33 +950,41 @@
561 if (opUsed == HGFS_OP_RENAME_V3) {
562 HgfsRequestRenameV3 *requestV3 = HgfsGetRequestPayload(req);
563
564- oldName = requestV3->oldName.name;
565- oldNameLength = &requestV3->oldName.length;
566 requestV3->hints = 0;
567 requestV3->oldName.flags = 0;
568 requestV3->oldName.fid = HGFS_INVALID_HANDLE;
569 requestV3->oldName.caseType = HGFS_FILE_NAME_CASE_SENSITIVE;
570 requestV3->reserved = 0;
571 reqSize = sizeof(*requestV3) + HgfsGetRequestHeaderSize();
572+ /* Convert old name to CP format. */
573+ result = CPName_ConvertTo(from,
574+ HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize),
575+ requestV3->oldName.name);
576+ if (result < 0) {
577+ LOG(4, ("oldName CP conversion failed\n"));
578+ result = -EINVAL;
579+ goto out;
580+ }
581+
582+ requestV3->oldName.length = result;
583+ reqSize += result;
584 } else {
585 HgfsRequestRename *request = (HgfsRequestRename *)HGFS_REQ_PAYLOAD(req);
586
587- oldName = request->oldName.name;
588- oldNameLength = &request->oldName.length;
589 reqSize = sizeof *request;
590- }
591- /* Convert old name to CP format. */
592- result = CPName_ConvertTo(from,
593- HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize),
594- oldName);
595- if (result < 0) {
596- LOG(4, ("oldName CP conversion failed\n"));
597- result = -EINVAL;
598- goto out;
599- }
600+ /* Convert old name to CP format. */
601+ result = CPName_ConvertTo(from,
602+ HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize),
603+ request->oldName.name);
604+ if (result < 0) {
605+ LOG(4, ("oldName CP conversion failed\n"));
606+ result = -EINVAL;
607+ goto out;
608+ }
609
610- *oldNameLength = result;
611- reqSize += result;
612+ request->oldName.length = result;
613+ reqSize += result;
614+ }
615
616 /*
617 * Build full new name to send to server.
618@@ -983,8 +999,20 @@
619
620 newNameP = (HgfsFileNameV3 *)((char *)&requestV3->oldName +
621 sizeof requestV3->oldName + result);
622- newName = newNameP->name;
623- newNameLength = &newNameP->length;
624+
625+ LOG(6, ("New name: \"%s\"\n", newNameP->name));
626+
627+ /* Convert new name to CP format. */
628+ result = CPName_ConvertTo(to,
629+ HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize) - result,
630+ newNameP->name);
631+ if (result < 0) {
632+ LOG(4, ("newName CP conversion failed\n"));
633+ result = -EINVAL;
634+ goto out;
635+ }
636+ newNameP->length = result;
637+ reqSize += result;
638 newNameP->flags = 0;
639 newNameP->fid = HGFS_INVALID_HANDLE;
640 newNameP->caseType = HGFS_FILE_NAME_CASE_SENSITIVE;
641@@ -993,24 +1021,22 @@
642 HgfsFileName *newNameP;
643 newNameP = (HgfsFileName *)((char *)&request->oldName +
644 sizeof request->oldName + result);
645- newName = newNameP->name;
646- newNameLength = &newNameP->length;
647- }
648
649- LOG(6, ("New name: \"%s\"\n", newName));
650+ LOG(6, ("New name: \"%s\"\n", newNameP->name));
651
652- /* Convert new name to CP format. */
653- result = CPName_ConvertTo(to,
654- HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize) - result,
655- newName);
656- if (result < 0) {
657- LOG(4, ("newName CP conversion failed\n"));
658- result = -EINVAL;
659- goto out;
660+ /* Convert new name to CP format. */
661+ result = CPName_ConvertTo(to,
662+ HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize) - result,
663+ newNameP->name);
664+ if (result < 0) {
665+ LOG(4, ("newName CP conversion failed\n"));
666+ result = -EINVAL;
667+ goto out;
668+ }
669+ newNameP->length = result;
670+ reqSize += result;
671 }
672
673- *newNameLength = result;
674- reqSize += result;
675 req->payloadSize = reqSize;
676
677 /* Fill in header here as payloadSize needs to be there. */
678@@ -1109,21 +1135,17 @@
679 {
680 HgfsAttrV2 *attrV2;
681 HgfsAttr *attrV1;
682- HgfsAttrHint *hints;
683 HgfsAttrChanges *update;
684- char *fileName = NULL;
685- uint32 *fileNameLength = NULL;
686 size_t reqBufferSize;
687 size_t reqSize;
688- int result = 0;
689 ASSERT(req);
690
691 switch (opUsed) {
692 case HGFS_OP_SETATTR_V3: {
693+ int result;
694 HgfsRequestSetattrV3 *requestV3 = HgfsGetRequestPayload(req);
695
696 attrV2 = &requestV3->attr;
697- hints = &requestV3->hints;
698
699 /*
700 * Clear attributes, mask, and hints before touching them.
701@@ -1131,7 +1153,7 @@
702 * make sure to zero them all here.
703 */
704 memset(attrV2, 0, sizeof *attrV2);
705- memset(hints, 0, sizeof *hints);
706+ requestV3->hints = 0;
707
708 /*
709 * When possible, issue a setattr using an existing handle. This will
710@@ -1143,14 +1165,21 @@
711 * the times also requires write permissions on Windows, so we require it
712 * here too. Otherwise, any handle will do.
713 */
714- fileName = requestV3->fileName.name;
715- fileNameLength = &requestV3->fileName.length;
716 requestV3->fileName.caseType = HGFS_FILE_NAME_CASE_SENSITIVE;
717 requestV3->fileName.fid = HGFS_INVALID_HANDLE;
718 requestV3->fileName.flags = 0;
719 requestV3->reserved = 0;
720 reqSize = sizeof(*requestV3) + HgfsGetRequestHeaderSize();
721 reqBufferSize = HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize);
722+ result = CPName_ConvertTo(path,
723+ reqBufferSize,
724+ requestV3->fileName.name);
725+ if (result < 0) {
726+ LOG(4, ("CP conversion failed.\n"));
727+ return -EINVAL;
728+ }
729+ requestV3->fileName.length = result;
730+ reqSize += result;
731
732 attrV2->mask = attr->mask;
733 if (attr->mask & (HGFS_ATTR_VALID_SPECIAL_PERMS |
734@@ -1173,22 +1202,22 @@
735 }
736 if (attr->mask & HGFS_ATTR_VALID_ACCESS_TIME) {
737 attrV2->accessTime = attr->accessTime;
738- *hints |= HGFS_ATTR_HINT_SET_ACCESS_TIME;
739+ requestV3->hints |= HGFS_ATTR_HINT_SET_ACCESS_TIME;
740 }
741 if (attr->mask & HGFS_ATTR_VALID_WRITE_TIME) {
742 attrV2->writeTime = attr->writeTime;
743- *hints |= HGFS_ATTR_HINT_SET_WRITE_TIME;
744+ requestV3->hints |= HGFS_ATTR_HINT_SET_WRITE_TIME;
745 }
746
747 break;
748 }
749 case HGFS_OP_SETATTR_V2: {
750+ int result;
751 HgfsRequestSetattrV2 *requestV2;
752
753 requestV2 = (HgfsRequestSetattrV2 *)(HGFS_REQ_PAYLOAD(req));
754
755 attrV2 = &requestV2->attr;
756- hints = &requestV2->hints;
757
758 /*
759 * Clear attributes, mask, and hints before touching them.
760@@ -1196,13 +1225,19 @@
761 * make sure to zero them all here.
762 */
763 memset(attrV2, 0, sizeof *attrV2);
764- memset(hints, 0, sizeof *hints);
765-
766- fileName = requestV2->fileName.name;
767- fileNameLength = &requestV2->fileName.length;
768+ requestV2->hints = 0;
769
770 reqSize = sizeof *requestV2;
771 reqBufferSize = HGFS_NAME_BUFFER_SIZE(HGFS_LARGE_PACKET_MAX, requestV2);
772+ result = CPName_ConvertTo(path,
773+ reqBufferSize,
774+ requestV2->fileName.name);
775+ if (result < 0) {
776+ LOG(4, ("CP conversion failed.\n"));
777+ return -EINVAL;
778+ }
779+ requestV2->fileName.length = result;
780+ reqSize += result;
781
782 if (attr->mask & (HGFS_ATTR_VALID_SPECIAL_PERMS |
783 HGFS_ATTR_VALID_OWNER_PERMS |
784@@ -1224,16 +1259,17 @@
785 }
786 if (attr->mask & HGFS_ATTR_VALID_ACCESS_TIME) {
787 attrV2->accessTime = attr->accessTime;
788- *hints |= HGFS_ATTR_HINT_SET_ACCESS_TIME;
789+ requestV2->hints |= HGFS_ATTR_HINT_SET_ACCESS_TIME;
790 }
791 if (attr->mask & HGFS_ATTR_VALID_WRITE_TIME) {
792 attrV2->writeTime = attr->writeTime;
793- *hints |= HGFS_ATTR_HINT_SET_WRITE_TIME;
794+ requestV2->hints |= HGFS_ATTR_HINT_SET_WRITE_TIME;
795 }
796
797 break;
798 }
799 case HGFS_OP_SETATTR: {
800+ int result;
801 HgfsRequestSetattr *request;
802
803 request = (HgfsRequestSetattr *)(HGFS_REQ_PAYLOAD(req));
804@@ -1241,11 +1277,17 @@
805 attrV1 = &request->attr;
806 update = &request->update;
807
808- /* We'll use these later. */
809- fileName = request->fileName.name;
810- fileNameLength = &request->fileName.length;
811 reqSize = sizeof *request;
812 reqBufferSize = HGFS_NAME_BUFFER_SIZE(HGFS_LARGE_PACKET_MAX, request);
813+ result = CPName_ConvertTo(path,
814+ reqBufferSize,
815+ request->fileName.name);
816+ if (result < 0) {
817+ LOG(4, ("CP conversion failed.\n"));
818+ return -EINVAL;
819+ }
820+ request->fileName.length = result;
821+ reqSize += result;
822
823 /*
824 * Clear attributes before touching them.
825@@ -1284,16 +1326,7 @@
826 return -EPROTO;
827 }
828
829- result = CPName_ConvertTo(path,
830- reqBufferSize,
831- fileName);
832- if (result < 0) {
833- LOG(4, ("CP conversion failed.\n"));
834- return -EINVAL;
835- }
836-
837- *fileNameLength = result;
838- req->payloadSize = reqSize + result;
839+ req->payloadSize = reqSize;
840
841 /* Fill in header here as payloadSize needs to be there. */
842 HgfsPackHeader(req, opUsed);
843--- a/open-vm-tools/vmhgfs-fuse/filesystem.c
844+++ b/open-vm-tools/vmhgfs-fuse/filesystem.c
845@@ -1,5 +1,5 @@
846 /*********************************************************
847- * Copyright (C) 2013 VMware, Inc. All rights reserved.
848+ * Copyright (C) 2013,2019 VMware, Inc. All rights reserved.
849 *
850 * This program is free software; you can redistribute it and/or modify it
851 * under the terms of the GNU Lesser General Public License as published
852@@ -123,36 +123,50 @@
853 HgfsOp opUsed, // IN: Op to be used.
854 HgfsReq *req) // IN/OUT: Packet to write into
855 {
856- char *name;
857- uint32 *nameLength;
858 size_t requestSize;
859- int result;
860+
861
862 ASSERT(req);
863
864 switch (opUsed) {
865 case HGFS_OP_QUERY_VOLUME_INFO_V3: {
866+ int result;
867 HgfsRequestQueryVolumeV3 *requestV3 = HgfsGetRequestPayload(req);
868
869- /* We'll use these later. */
870- name = requestV3->fileName.name;
871- nameLength = &requestV3->fileName.length;
872 requestV3->fileName.flags = 0;
873 requestV3->fileName.fid = HGFS_INVALID_HANDLE;
874 requestV3->fileName.caseType = HGFS_FILE_NAME_CASE_SENSITIVE;
875 requestV3->reserved = 0;
876 requestSize = sizeof(*requestV3) + HgfsGetRequestHeaderSize();
877+ /* Convert to CP name. */
878+ result = CPName_ConvertTo(path,
879+ HGFS_LARGE_PACKET_MAX - (requestSize - 1),
880+ requestV3->fileName.name);
881+ if (result < 0) {
882+ LOG(4, ("CP conversion failed.\n"));
883+ return -EINVAL;
884+ }
885+ requestV3->fileName.length = result;
886+ requestSize += result;
887 break;
888 }
889 case HGFS_OP_QUERY_VOLUME_INFO: {
890+ int result;
891 HgfsRequestQueryVolume *request;
892
893 request = (HgfsRequestQueryVolume *)(HGFS_REQ_PAYLOAD(req));
894
895- /* We'll use these later. */
896- name = request->fileName.name;
897- nameLength = &request->fileName.length;
898 requestSize = sizeof *request;
899+ /* Convert to CP name. */
900+ result = CPName_ConvertTo(path,
901+ HGFS_LARGE_PACKET_MAX - (requestSize - 1),
902+ request->fileName.name);
903+ if (result < 0) {
904+ LOG(4, ("CP conversion failed.\n"));
905+ return -EINVAL;
906+ }
907+ request->fileName.length = result;
908+ requestSize += result;
909 break;
910 }
911 default:
912@@ -160,17 +174,7 @@
913 return -EPROTO;
914 }
915
916- /* Convert to CP name. */
917- result = CPName_ConvertTo(path,
918- HGFS_LARGE_PACKET_MAX - (requestSize - 1),
919- name);
920- if (result < 0) {
921- LOG(4, ("CP conversion failed.\n"));
922- return -EINVAL;
923- }
924-
925- *nameLength = (uint32) result;
926- req->payloadSize = requestSize + result;
927+ req->payloadSize = requestSize;
928
929 /* Fill in header here as payloadSize needs to be there. */
930 HgfsPackHeader(req, opUsed);
931--- a/open-vm-tools/vmhgfs-fuse/fsutil.c
932+++ b/open-vm-tools/vmhgfs-fuse/fsutil.c
933@@ -1,5 +1,5 @@
934 /*********************************************************
935- * Copyright (C) 2013 VMware, Inc. All rights reserved.
936+ * Copyright (C) 2013,2019 VMware, Inc. All rights reserved.
937 *
938 * This program is free software; you can redistribute it and/or modify it
939 * under the terms of the GNU Lesser General Public License as published
940@@ -189,8 +189,6 @@
941 size_t reqBufferSize;
942 size_t reqSize;
943 int result = 0;
944- char *fileName = NULL;
945- uint32 *fileNameLength = NULL;
946 ASSERT(attr);
947 ASSERT(req);
948 ASSERT(path);
949@@ -204,8 +202,6 @@
950
951 /* Fill out the request packet. */
952 requestV3->hints = 0;
953- fileName = requestV3->fileName.name;
954- fileNameLength = &requestV3->fileName.length;
955 requestV3->fileName.flags = 0;
956 requestV3->fileName.fid = HGFS_INVALID_HANDLE;
957 requestV3->fileName.caseType = HGFS_FILE_NAME_CASE_SENSITIVE;
958@@ -213,6 +209,19 @@
959 requestV3->reserved = 0;
960 reqSize = sizeof(*requestV3) + HgfsGetRequestHeaderSize();
961 reqBufferSize = HGFS_NAME_BUFFER_SIZET(HGFS_LARGE_PACKET_MAX, reqSize);
962+ if (requestV3->fileName.name != NULL) {
963+ /* Convert to CP name. */
964+ result = CPName_ConvertTo(path,
965+ reqBufferSize,
966+ requestV3->fileName.name);
967+ LOG(8, ("Converted path %s\n", requestV3->fileName.name));
968+ if (result < 0) {
969+ LOG(8, ("CP conversion failed.\n"));
970+ result = -EINVAL;
971+ goto out;
972+ }
973+ requestV3->fileName.length = result;
974+ }
975 break;
976 }
977
978@@ -223,20 +232,42 @@
979
980 requestV2 = (HgfsRequestGetattrV2 *)(HGFS_REQ_PAYLOAD(req));
981 requestV2->hints = 0;
982- fileName = requestV2->fileName.name;
983- fileNameLength = &requestV2->fileName.length;
984 reqSize = sizeof *requestV2;
985 reqBufferSize = HGFS_NAME_BUFFER_SIZE(HGFS_LARGE_PACKET_MAX, requestV2);
986+ if (requestV2->fileName.name != NULL) {
987+ /* Convert to CP name. */
988+ result = CPName_ConvertTo(path,
989+ reqBufferSize,
990+ requestV2->fileName.name);
991+ LOG(8, ("Converted path %s\n", requestV2->fileName.name));
992+ if (result < 0) {
993+ LOG(8, ("CP conversion failed.\n"));
994+ result = -EINVAL;
995+ goto out;
996+ }
997+ requestV2->fileName.length = result;
998+ }
999 break;
1000 }
1001
1002 case HGFS_OP_GETATTR: {
1003 HgfsRequestGetattr *requestV1;
1004 requestV1 = (HgfsRequestGetattr *)(HGFS_REQ_PAYLOAD(req));
1005- fileName = requestV1->fileName.name;
1006- fileNameLength = &requestV1->fileName.length;
1007 reqSize = sizeof *requestV1;
1008 reqBufferSize = HGFS_NAME_BUFFER_SIZE(HGFS_LARGE_PACKET_MAX, requestV1);
1009+ if (requestV1->fileName.name != NULL) {
1010+ /* Convert to CP name. */
1011+ result = CPName_ConvertTo(path,
1012+ reqBufferSize,
1013+ requestV1->fileName.name);
1014+ LOG(8, ("Converted path %s\n", requestV1->fileName.name));
1015+ if (result < 0) {
1016+ LOG(8, ("CP conversion failed.\n"));
1017+ result = -EINVAL;
1018+ goto out;
1019+ }
1020+ requestV1->fileName.length = result;
1021+ }
1022 break;
1023 }
1024
1025@@ -246,20 +277,6 @@
1026 goto out;
1027 }
1028
1029- if (fileName != NULL) {
1030- /* Convert to CP name. */
1031- result = CPName_ConvertTo(path,
1032- reqBufferSize,
1033- fileName);
1034- LOG(8, ("Converted path %s\n", fileName));
1035- if (result < 0) {
1036- LOG(8, ("CP conversion failed.\n"));
1037- result = -EINVAL;
1038- goto out;
1039- }
1040- *fileNameLength = result;
1041- }
1042-
1043 req->payloadSize = reqSize + result;
1044
1045 /* Fill in header here as payloadSize needs to be there. */
1046--- a/open-vm-tools/vmhgfs-fuse/link.c
1047+++ b/open-vm-tools/vmhgfs-fuse/link.c
1048@@ -1,5 +1,5 @@
1049 /*********************************************************
1050- * Copyright (C) 2013 VMware, Inc. All rights reserved.
1051+ * Copyright (C) 2013,2019 VMware, Inc. All rights reserved.
1052 *
1053 * This program is free software; you can redistribute it and/or modify it
1054 * under the terms of the GNU Lesser General Public License as published
1055@@ -51,36 +51,81 @@
1056 {
1057 HgfsRequestSymlinkCreateV3 *requestV3 = NULL;
1058 HgfsRequestSymlinkCreate *request = NULL;
1059- char *symlinkName;
1060- uint32 *symlinkNameLength;
1061- char *targetName;
1062- uint32 *targetNameLength;
1063 size_t targetNameBytes;
1064-
1065 size_t requestSize;
1066- int result;
1067+
1068+ targetNameBytes = strlen(symname) + 1;
1069
1070 switch (opUsed) {
1071 case HGFS_OP_CREATE_SYMLINK_V3: {
1072+ int result;
1073+ HgfsFileNameV3 *fileNameP;
1074 requestV3 = HgfsGetRequestPayload(req);
1075
1076- /* We'll use these later. */
1077- symlinkName = requestV3->symlinkName.name;
1078- symlinkNameLength = &requestV3->symlinkName.length;
1079 requestV3->symlinkName.flags = 0;
1080 requestV3->symlinkName.fid = HGFS_INVALID_HANDLE;
1081 requestV3->symlinkName.caseType = HGFS_FILE_NAME_CASE_SENSITIVE;
1082 requestV3->reserved = 0;
1083 requestSize = sizeof(*requestV3) + HgfsGetRequestHeaderSize();
1084+ /* Convert symlink name to CP format. */
1085+ result = CPName_ConvertTo(symlink,
1086+ HGFS_LARGE_PACKET_MAX - (requestSize - 1),
1087+ requestV3->symlinkName.name);
1088+ if (result < 0) {
1089+ LOG(4, ("SymlinkName CP conversion failed.\n"));
1090+ return -EINVAL;
1091+ }
1092+ requestV3->symlinkName.length = result;
1093+ requestSize += result;
1094+
1095+ /* Copy target name into request packet. */
1096+ if (targetNameBytes > HGFS_LARGE_PACKET_MAX - (requestSize - 1)) {
1097+ LOG(4, ("Target name is too long.\n"));
1098+ return -EINVAL;
1099+ }
1100+
1101+ fileNameP = (HgfsFileNameV3 *)((char *)&requestV3->symlinkName +
1102+ sizeof requestV3->symlinkName + result);
1103+ memcpy(fileNameP->name, symname, targetNameBytes);
1104+ LOG(6, ("Target name: \"%s\"\n", fileNameP->name));
1105+ /* Convert target name to CPName-lite format. */
1106+ CPNameLite_ConvertTo(fileNameP->name, targetNameBytes - 1, '/');
1107+ fileNameP->length = targetNameBytes - 1;
1108+ fileNameP->flags = 0;
1109+ fileNameP->fid = HGFS_INVALID_HANDLE;
1110+ fileNameP->caseType = HGFS_FILE_NAME_CASE_SENSITIVE;
1111 break;
1112 }
1113 case HGFS_OP_CREATE_SYMLINK: {
1114+ int result;
1115+ HgfsFileName *fileNameP;
1116 request = (HgfsRequestSymlinkCreate *)(HGFS_REQ_PAYLOAD(req));
1117
1118- /* We'll use these later. */
1119- symlinkName = request->symlinkName.name;
1120- symlinkNameLength = &request->symlinkName.length;
1121 requestSize = sizeof *request;
1122+ /* Convert symlink name to CP format. */
1123+ result = CPName_ConvertTo(symlink,
1124+ HGFS_LARGE_PACKET_MAX - (requestSize - 1),
1125+ request->symlinkName.name);
1126+ if (result < 0) {
1127+ LOG(4, ("SymlinkName CP conversion failed.\n"));
1128+ return -EINVAL;
1129+ }
1130+ request->symlinkName.length = result;
1131+ requestSize += result;
1132+
1133+ /* Copy target name into request packet. */
1134+ if (targetNameBytes > HGFS_LARGE_PACKET_MAX - (requestSize - 1)) {
1135+ LOG(4, ("Target name is too long.\n"));
1136+ return -EINVAL;
1137+ }
1138+
1139+ fileNameP = (HgfsFileName *)((char *)&request->symlinkName +
1140+ sizeof request->symlinkName + result);
1141+ memcpy(fileNameP->name, symname, targetNameBytes);
1142+ LOG(6, ("Target name: \"%s\"\n", fileNameP->name));
1143+ /* Convert target name to CPName-lite format. */
1144+ CPNameLite_ConvertTo(fileNameP->name, targetNameBytes - 1, '/');
1145+ fileNameP->length = targetNameBytes - 1;
1146 break;
1147 }
1148 default:
1149@@ -88,59 +133,13 @@
1150 return -EPROTO;
1151 }
1152
1153-
1154- /* Convert symlink name to CP format. */
1155- result = CPName_ConvertTo(symlink,
1156- HGFS_LARGE_PACKET_MAX - (requestSize - 1),
1157- symlinkName);
1158- if (result < 0) {
1159- LOG(4, ("SymlinkName CP conversion failed.\n"));
1160- return -EINVAL;
1161- }
1162-
1163- *symlinkNameLength = result;
1164- req->payloadSize = requestSize + result;
1165+ req->payloadSize = requestSize;
1166
1167 /*
1168- * Note the different buffer length. This is because HgfsRequestSymlink
1169- * contains two filenames, and once we place the first into the packet we
1170- * must account for it when determining the amount of buffer available for
1171- * the second.
1172- *
1173- * Also note that targetNameBytes accounts for the NUL character. Once
1174- * we've converted it to CP name, it won't be NUL-terminated and the length
1175- * of the string in the packet itself won't account for it.
1176+ * targetNameBytes accounts for the NUL character. Once we've converted
1177+ * it to CP name, it won't be NUL-terminated and the length of the string
1178+ * in the packet itself won't account for it.
1179 */
1180- if (opUsed == HGFS_OP_CREATE_SYMLINK_V3) {
1181- HgfsFileNameV3 *fileNameP;
1182- fileNameP = (HgfsFileNameV3 *)((char *)&requestV3->symlinkName +
1183- sizeof requestV3->symlinkName + result);
1184- targetName = fileNameP->name;
1185- targetNameLength = &fileNameP->length;
1186- fileNameP->flags = 0;
1187- fileNameP->fid = HGFS_INVALID_HANDLE;
1188- fileNameP->caseType = HGFS_FILE_NAME_CASE_SENSITIVE;
1189- } else {
1190- HgfsFileName *fileNameP;
1191- fileNameP = (HgfsFileName *)((char *)&request->symlinkName +
1192- sizeof request->symlinkName + result);
1193- targetName = fileNameP->name;
1194- targetNameLength = &fileNameP->length;
1195- }
1196- targetNameBytes = strlen(symname) + 1;
1197-
1198- /* Copy target name into request packet. */
1199- if (targetNameBytes > HGFS_LARGE_PACKET_MAX - (requestSize - 1)) {
1200- LOG(4, ("Target name is too long.\n"));
1201- return -EINVAL;
1202- }
1203- memcpy(targetName, symname, targetNameBytes);
1204- LOG(6, ("Target name: \"%s\"\n", targetName));
1205-
1206- /* Convert target name to CPName-lite format. */
1207- CPNameLite_ConvertTo(targetName, targetNameBytes - 1, '/');
1208-
1209- *targetNameLength = targetNameBytes - 1;
1210 req->payloadSize += targetNameBytes - 1;
1211
1212 /* Fill in header here as payloadSize needs to be there. */
diff --git a/debian/patches/gcc9-GStaticRecMutex.patch b/debian/patches/gcc9-GStaticRecMutex.patch
1213deleted file mode 1006440deleted file mode 100644
index 09224a3..0000000
--- a/debian/patches/gcc9-GStaticRecMutex.patch
+++ /dev/null
@@ -1,55 +0,0 @@
1Author: Christian Ehrhardt <christian.ehrhardt@canonical.com>
2Original-Author: Oliver Kurth <okurth@vmware.com>
3Origin: backport, https://github.com/vmware/open-vm-tools/commit/19ca3e36
4X-Backport-Note: only took the GStaticMutex changes from the mcuh bigger rework
5Bug-Ubuntu: https://bugs.launchpad.net/bugs/1842301
6Applied-Upstream: 11.0
7Last-Update: 2019-09-03
8
9--- a/open-vm-tools/libvmtools/vmtoolsLog.c
10+++ b/open-vm-tools/libvmtools/vmtoolsLog.c
11@@ -155,7 +155,7 @@ static LogHandler *gErrorData;
12 static LogHandler *gErrorSyslog;
13 static GPtrArray *gDomains = NULL;
14 static gboolean gLogInitialized = FALSE;
15-static GStaticRecMutex gLogStateMutex = G_STATIC_REC_MUTEX_INIT;
16+static GRecMutex gLogStateMutex;
17 static gboolean gLoggingStopped = FALSE;
18 static gboolean gLogIOSuspended = FALSE;
19
20@@ -1046,7 +1046,7 @@ VMTools_ConfigLogToStdio(const gchar *do
21
22 if (!gLogInitialized) {
23 gLogInitialized = TRUE;
24- g_static_rec_mutex_init(&gLogStateMutex);
25+ g_rec_mutex_init(&gLogStateMutex);
26 }
27
28 gLogEnabled = TRUE;
29@@ -1157,7 +1157,7 @@ VMTools_ConfigLogging(const gchar *defau
30 gLogEnabled |= force;
31 if (!gLogInitialized) {
32 gLogInitialized = TRUE;
33- g_static_rec_mutex_init(&gLogStateMutex);
34+ g_rec_mutex_init(&gLogStateMutex);
35 }
36
37 gMaxCacheEntries = g_key_file_get_integer(cfg, LOGGING_GROUP,
38@@ -1323,7 +1323,7 @@ VMToolsLogWrapper(GLogLevelFlags level,
39 void
40 VMTools_AcquireLogStateLock(void)
41 {
42- g_static_rec_mutex_lock(&gLogStateMutex);
43+ g_rec_mutex_lock(&gLogStateMutex);
44 }
45
46
47@@ -1334,7 +1334,7 @@ VMTools_AcquireLogStateLock(void)
48 void
49 VMTools_ReleaseLogStateLock(void)
50 {
51- g_static_rec_mutex_unlock(&gLogStateMutex);
52+ g_rec_mutex_unlock(&gLogStateMutex);
53 }
54
55
diff --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
56deleted file mode 1006440deleted file mode 100644
index cacaeb0..0000000
--- a/debian/patches/gcc9-Remove-GLib-2.32-deprecated-APIs-from-tools.patch
+++ /dev/null
@@ -1,827 +0,0 @@
1From a7c141fc5278146b86c71502f60767962b752af7 Mon Sep 17 00:00:00 2001
2From: Oliver Kurth <okurth@vmware.com>
3Date: Tue, 18 Dec 2018 13:19:46 -0800
4Subject: [PATCH] Remove GLib 2.32 deprecated APIs from tools
5
6Replace the GThread, GCond and GMutex APIs deprecated in GLib version
72.32 in the VMware Tools source.
8
9Backport Notes:
10- open-vm-tools/lib/rpcChannel/rpcChannel.c context changes, still search/replace
11- open-vm-tools/services/plugins/vmbackup/stateMachine.c.rej context changes, still search/replace
12- open-vm-tools/services/vmtoolsd/toolsHangDetector.c - didn't exist in 10.3.10
13- open-vm-tools/lib/rpcChannel/glib_stubs.c - didn't exist in 10.3.10
14
15Origin: backport, https://github.com/vmware/open-vm-tools/commit/a7c141fc
16Bug-Ubuntu: https://bugs.launchpad.net/bugs/1842301
17Last-Update: 2019-09-03
18
19---
20 open-vm-tools/configure.ac | 2 +-
21 open-vm-tools/lib/glibUtils/fileLogger.c | 10 ++--
22 open-vm-tools/lib/glibUtils/stdLogger.c | 12 ++---
23 open-vm-tools/lib/glibUtils/sysLogger.c | 12 ++---
24 .../lib/include/vmware/tools/threadPool.h | 7 ++-
25 open-vm-tools/lib/rpcChannel/glib_stubs.c | 6 +--
26 open-vm-tools/lib/rpcChannel/rpcChannel.c | 20 +++----
27 open-vm-tools/lib/rpcChannel/rpcChannelInt.h | 2 +-
28 open-vm-tools/libvmtools/i18n.c | 16 +++---
29 open-vm-tools/libvmtools/vmtoolsConfig.c | 6 +--
30 .../services/plugins/vmbackup/stateMachine.c | 16 +++---
31 .../services/plugins/vmbackup/vmBackupInt.h | 6 +--
32 open-vm-tools/services/vmtoolsd/cmdLine.c | 2 -
33 open-vm-tools/services/vmtoolsd/mainLoop.c | 4 --
34 open-vm-tools/services/vmtoolsd/serviceObj.c | 16 +++---
35 open-vm-tools/services/vmtoolsd/serviceObj.h | 4 +-
36 open-vm-tools/services/vmtoolsd/threadPool.c | 52 +++++++++----------
37 .../services/vmtoolsd/toolsHangDetector.c | 1 +
38 open-vm-tools/vgauth/service/fileLogger.c | 4 --
39 19 files changed, 93 insertions(+), 105 deletions(-)
40
41--- a/open-vm-tools/configure.ac
42+++ b/open-vm-tools/configure.ac
43@@ -420,7 +420,7 @@ AC_ARG_ENABLE([grabbitmqproxy],
44 ])
45
46 #
47-# Check for glib 2.6.14 or greater.
48+# Check for glib 2.34.0 or greater.
49 #
50 AC_VMW_CHECK_LIB([glib-2.0],
51 [GLIB2],
52--- a/open-vm-tools/lib/glibUtils/fileLogger.c
53+++ b/open-vm-tools/lib/glibUtils/fileLogger.c
54@@ -44,7 +44,7 @@ typedef struct FileLogger {
55 guint maxFiles;
56 gboolean append;
57 gboolean error;
58- GStaticMutex lock;
59+ GMutex lock;
60 } FileLogger;
61
62
63@@ -348,7 +348,7 @@ FileLoggerLog(const gchar *domain,
64 FileLogger *logger = data;
65 gsize written;
66
67- g_static_mutex_lock(&logger->lock);
68+ g_mutex_lock(&logger->lock);
69
70 if (logger->error) {
71 goto exit;
72@@ -387,7 +387,7 @@ FileLoggerLog(const gchar *domain,
73 }
74
75 exit:
76- g_static_mutex_unlock(&logger->lock);
77+ g_mutex_unlock(&logger->lock);
78 }
79
80
81@@ -409,7 +409,7 @@ FileLoggerDestroy(gpointer data)
82 if (logger->file != NULL) {
83 g_io_channel_unref(logger->file);
84 }
85- g_static_mutex_free(&logger->lock);
86+ g_mutex_clear(&logger->lock);
87 g_free(logger->path);
88 g_free(logger);
89 }
90@@ -456,7 +456,7 @@ GlibUtils_CreateFileLogger(const char *p
91 data->append = append;
92 data->maxSize = maxSize * 1024 * 1024;
93 data->maxFiles = maxFiles + 1; /* To account for the active log file. */
94- g_static_mutex_init(&data->lock);
95+ g_mutex_init(&data->lock);
96
97 return &data->handler;
98 }
99--- a/open-vm-tools/lib/glibUtils/stdLogger.c
100+++ b/open-vm-tools/lib/glibUtils/stdLogger.c
101@@ -1,5 +1,5 @@
102 /*********************************************************
103- * Copyright (C) 2010-2016 VMware, Inc. All rights reserved.
104+ * Copyright (C) 2010-2018 VMware, Inc. All rights reserved.
105 *
106 * This program is free software; you can redistribute it and/or modify it
107 * under the terms of the GNU Lesser General Public License as published
108@@ -27,7 +27,7 @@
109 #include <stdio.h>
110
111 #if defined(_WIN32)
112-static GStaticMutex gConsoleLock = G_STATIC_MUTEX_INIT;
113+static GMutex gConsoleLock;
114 static gint gRefCount = 0;
115 #endif
116
117@@ -66,12 +66,12 @@ StdLoggerLog(const gchar *domain,
118 StdLogger *sdata = data;
119
120 if (!sdata->attached) {
121- g_static_mutex_lock(&gConsoleLock);
122+ g_mutex_lock(&gConsoleLock);
123 if (gRefCount != 0 || GlibUtils_AttachConsole()) {
124 gRefCount++;
125 sdata->attached = TRUE;
126 }
127- g_static_mutex_unlock(&gConsoleLock);
128+ g_mutex_unlock(&gConsoleLock);
129 }
130
131 if (!sdata->attached) {
132@@ -105,11 +105,11 @@ StdLoggerDestroy(gpointer data)
133 {
134 #if defined(_WIN32)
135 StdLogger *sdata = data;
136- g_static_mutex_lock(&gConsoleLock);
137+ g_mutex_lock(&gConsoleLock);
138 if (sdata->attached && --gRefCount == 0) {
139 FreeConsole();
140 }
141- g_static_mutex_unlock(&gConsoleLock);
142+ g_mutex_unlock(&gConsoleLock);
143 #endif
144 g_free(data);
145 }
146--- a/open-vm-tools/lib/glibUtils/sysLogger.c
147+++ b/open-vm-tools/lib/glibUtils/sysLogger.c
148@@ -1,5 +1,5 @@
149 /*********************************************************
150- * Copyright (C) 2010-2016 VMware, Inc. All rights reserved.
151+ * Copyright (C) 2010-2018 VMware, Inc. All rights reserved.
152 *
153 * This program is free software; you can redistribute it and/or modify it
154 * under the terms of the GNU Lesser General Public License as published
155@@ -38,7 +38,7 @@ typedef struct SysLogger {
156
157
158 static SysLogger *gSysLogger;
159-static GStaticMutex gSysLoggerLock = G_STATIC_MUTEX_INIT;
160+static GMutex gSysLoggerLock;
161
162
163 /*
164@@ -105,7 +105,7 @@ SysLoggerUnref(gpointer data)
165 {
166 g_return_if_fail(data == gSysLogger);
167 g_return_if_fail(gSysLogger->refcount > 0);
168- g_static_mutex_lock(&gSysLoggerLock);
169+ g_mutex_lock(&gSysLoggerLock);
170 gSysLogger->refcount -= 1;
171 if (gSysLogger->refcount == 0) {
172 closelog();
173@@ -113,7 +113,7 @@ SysLoggerUnref(gpointer data)
174 g_free(gSysLogger);
175 gSysLogger = NULL;
176 }
177- g_static_mutex_unlock(&gSysLoggerLock);
178+ g_mutex_unlock(&gSysLoggerLock);
179 }
180
181
182@@ -140,7 +140,7 @@ GlibLogger *
183 GlibUtils_CreateSysLogger(const char *domain,
184 const char *facility)
185 {
186- g_static_mutex_lock(&gSysLoggerLock);
187+ g_mutex_lock(&gSysLoggerLock);
188 if (gSysLogger == NULL) {
189 int facid = LOG_USER;
190
191@@ -203,7 +203,7 @@ GlibUtils_CreateSysLogger(const char *do
192 } else {
193 gSysLogger->refcount += 1;
194 }
195- g_static_mutex_unlock(&gSysLoggerLock);
196+ g_mutex_unlock(&gSysLoggerLock);
197 return &gSysLogger->handler;
198 }
199
200--- a/open-vm-tools/lib/include/vmware/tools/threadPool.h
201+++ b/open-vm-tools/lib/include/vmware/tools/threadPool.h
202@@ -1,5 +1,5 @@
203 /*********************************************************
204- * Copyright (C) 2010-2016 VMware, Inc. All rights reserved.
205+ * Copyright (C) 2010-2018 VMware, Inc. All rights reserved.
206 *
207 * This program is free software; you can redistribute it and/or modify it
208 * under the terms of the GNU Lesser General Public License as published
209@@ -70,6 +70,7 @@ typedef struct ToolsCorePool {
210 GDestroyNotify dtor);
211 void (*cancel)(guint id);
212 gboolean (*start)(ToolsAppCtx *ctx,
213+ const gchar *threadName,
214 ToolsCorePoolCb cb,
215 ToolsCorePoolCb interrupt,
216 gpointer data,
217@@ -179,6 +180,7 @@ ToolsCorePool_CancelTask(ToolsAppCtx *ct
218 * some other method of communicating with the thread.
219 *
220 * @param[in] ctx Application context.
221+ * @param[in] threadName Name for the new thread.
222 * @param[in] cb Function that implements the task to execute.
223 * @param[in] interrupt A function that will request the task to be
224 * interrupted. This will be called when the pool
225@@ -197,6 +199,7 @@ ToolsCorePool_CancelTask(ToolsAppCtx *ct
226
227 G_INLINE_FUNC gboolean
228 ToolsCorePool_StartThread(ToolsAppCtx *ctx,
229+ const gchar *threadName,
230 ToolsCorePoolCb cb,
231 ToolsCorePoolCb interrupt,
232 gpointer data,
233@@ -204,7 +207,7 @@ ToolsCorePool_StartThread(ToolsAppCtx *c
234 {
235 ToolsCorePool *pool = ToolsCorePool_GetPool(ctx);
236 if (pool != NULL) {
237- return pool->start(ctx, cb, interrupt, data, dtor);
238+ return pool->start(ctx, threadName, cb, interrupt, data, dtor);
239 }
240 return FALSE;
241 }
242--- a/open-vm-tools/lib/rpcChannel/rpcChannel.c
243+++ b/open-vm-tools/lib/rpcChannel/rpcChannel.c
244@@ -119,7 +119,7 @@ RpcChannelRestart(gpointer _chan)
245 gboolean chanStarted;
246
247 /* Synchronize with any RpcChannel_Send calls by other threads. */
248- g_static_mutex_lock(&chan->impl.outLock);
249+ g_mutex_lock(&chan->impl.outLock);
250
251 RpcChannelStopNoLock(&chan->impl);
252
253@@ -128,7 +128,7 @@ RpcChannelRestart(gpointer _chan)
254 gVSocketFailed = FALSE;
255
256 chanStarted = RpcChannel_Start(&chan->impl);
257- g_static_mutex_unlock(&chan->impl.outLock);
258+ g_mutex_unlock(&chan->impl.outLock);
259 if (!chanStarted) {
260 Warning("Channel restart failed [%d]\n", chan->rpcResetErrorCount);
261 if (chan->resetCb != NULL) {
262@@ -750,7 +750,7 @@ RpcChannel_New(void)
263 chan = BackdoorChannel_New();
264 #endif
265 if (chan) {
266- g_static_mutex_init(&chan->outLock);
267+ g_mutex_init(&chan->outLock);
268 }
269 return chan;
270 }
271@@ -766,7 +766,7 @@ void
272 RpcChannel_Shutdown(RpcChannel *chan)
273 {
274 if (chan != NULL) {
275- g_static_mutex_free(&chan->outLock);
276+ g_mutex_free(&chan->outLock);
277 }
278
279 if (chan != NULL && chan->funcs != NULL && chan->funcs->shutdown != NULL) {
280@@ -883,9 +883,9 @@ RpcChannelStopNoLock(RpcChannel *chan)
281 void
282 RpcChannel_Stop(RpcChannel *chan)
283 {
284- g_static_mutex_lock(&chan->outLock);
285+ g_mutex_lock(&chan->outLock);
286 RpcChannelStopNoLock(chan);
287- g_static_mutex_unlock(&chan->outLock);
288+ g_mutex_unlock(&chan->outLock);
289 }
290
291
292@@ -952,7 +952,7 @@ RpcChannel_Send(RpcChannel *chan,
293
294 ASSERT(chan && chan->funcs);
295
296- g_static_mutex_lock(&chan->outLock);
297+ g_mutex_lock(&chan->outLock);
298
299 funcs = chan->funcs;
300 ASSERT(funcs->send);
301@@ -1003,7 +1003,7 @@ done:
302 }
303
304 exit:
305- g_static_mutex_unlock(&chan->outLock);
306+ g_mutex_unlock(&chan->outLock);
307 return ok && rpcStatus;
308 }
309
310--- a/open-vm-tools/lib/rpcChannel/rpcChannelInt.h
311+++ b/open-vm-tools/lib/rpcChannel/rpcChannelInt.h
312@@ -69,7 +69,7 @@ struct _RpcChannel {
313 const char *appName;
314 gpointer appCtx;
315 #endif
316- GStaticMutex outLock;
317+ GMutex outLock;
318 #if defined(NEED_RPCIN)
319 struct RpcIn *in;
320 gboolean inStarted;
321--- a/open-vm-tools/libvmtools/i18n.c
322+++ b/open-vm-tools/libvmtools/i18n.c
323@@ -1,5 +1,5 @@
324 /*********************************************************
325- * Copyright (C) 2010-2016 VMware, Inc. All rights reserved.
326+ * Copyright (C) 2010-2018 VMware, Inc. All rights reserved.
327 *
328 * This program is free software; you can redistribute it and/or modify it
329 * under the terms of the GNU Lesser General Public License as published
330@@ -54,7 +54,7 @@ typedef struct MsgCatalog {
331
332 typedef struct MsgState {
333 HashTable *domains; /* List of text domains. */
334- GStaticMutex lock; /* Mutex to protect shared state. */
335+ GMutex lock; /* Mutex to protect shared state. */
336 } MsgState;
337
338
339@@ -133,7 +133,7 @@ MsgInitState(gpointer unused)
340 {
341 ASSERT(gMsgState == NULL);
342 gMsgState = g_new0(MsgState, 1);
343- g_static_mutex_init(&gMsgState->lock);
344+ g_mutex_init(&gMsgState->lock);
345 return NULL;
346 }
347
348@@ -344,7 +344,7 @@ MsgGetString(const char *domain,
349 * This lock is pretty coarse-grained, but a lot of the code below just runs
350 * in exceptional situations, so it should be OK.
351 */
352- g_static_mutex_lock(&state->lock);
353+ g_mutex_lock(&state->lock);
354
355 catalog = MsgGetCatalog(domain);
356 if (catalog != NULL) {
357@@ -415,7 +415,7 @@ MsgGetString(const char *domain,
358 }
359 }
360
361- g_static_mutex_unlock(&state->lock);
362+ g_mutex_unlock(&state->lock);
363
364 return strp;
365 }
366@@ -682,7 +682,7 @@ VMToolsMsgCleanup(void)
367 if (gMsgState->domains != NULL) {
368 HashTable_Free(gMsgState->domains);
369 }
370- g_static_mutex_free(&gMsgState->lock);
371+ g_mutex_clear(&gMsgState->lock);
372 g_free(gMsgState);
373 }
374 }
375@@ -775,9 +775,9 @@ VMTools_BindTextDomain(const char *domai
376 "catalog dir '%s'.\n", domain, lang, catdir);
377 }
378 } else {
379- g_static_mutex_lock(&state->lock);
380+ g_mutex_lock(&state->lock);
381 MsgSetCatalog(domain, catalog);
382- g_static_mutex_unlock(&state->lock);
383+ g_mutex_unlock(&state->lock);
384 }
385 g_free(file);
386 free(dfltdir);
387--- a/open-vm-tools/libvmtools/vmtoolsConfig.c
388+++ b/open-vm-tools/libvmtools/vmtoolsConfig.c
389@@ -1,5 +1,5 @@
390 /*********************************************************
391- * Copyright (C) 2008-2017 VMware, Inc. All rights reserved.
392+ * Copyright (C) 2008-2018 VMware, Inc. All rights reserved.
393 *
394 * This program is free software; you can redistribute it and/or modify it
395 * under the terms of the GNU Lesser General Public License as published
396@@ -330,11 +330,7 @@ VMTools_LoadConfig(const gchar *path,
397 gchar *defaultPath = NULL;
398 gchar *localPath = NULL;
399 /* GStatBuf was added in 2.26. */
400-#if GLIB_CHECK_VERSION(2, 26, 0)
401 GStatBuf confStat;
402-#else
403- struct stat confStat;
404-#endif
405 GHashTable *old = NULL;
406 GError *err = NULL;
407 GKeyFile *cfg = NULL;
408--- a/open-vm-tools/services/plugins/vmbackup/stateMachine.c
409+++ b/open-vm-tools/services/plugins/vmbackup/stateMachine.c
410@@ -335,12 +335,12 @@ VmBackupFinalize(void)
411 g_source_unref(gBackupState->abortTimer);
412 }
413
414- g_static_mutex_lock(&gBackupState->opLock);
415+ g_mutex_lock(&gBackupState->opLock);
416 if (gBackupState->currentOp != NULL) {
417 VmBackup_Cancel(gBackupState->currentOp);
418 VmBackup_Release(gBackupState->currentOp);
419 }
420- g_static_mutex_unlock(&gBackupState->opLock);
421+ g_mutex_unlock(&gBackupState->opLock);
422
423 VmBackup_SendEvent(VMBACKUP_EVENT_REQUESTOR_DONE, VMBACKUP_SUCCESS, "");
424
425@@ -358,7 +358,7 @@ VmBackupFinalize(void)
426 if (gBackupState->completer != NULL) {
427 gBackupState->completer->release(gBackupState->completer);
428 }
429- g_static_mutex_free(&gBackupState->opLock);
430+ g_mutex_clear(&gBackupState->opLock);
431 g_free(gBackupState->scriptArg);
432 g_free(gBackupState->volumes);
433 g_free(gBackupState->snapshots);
434@@ -486,13 +486,13 @@ VmBackupDoAbort(void)
435 gBackupState->machineState != VMBACKUP_MSTATE_SYNC_ERROR) {
436 const char *eventMsg = "Quiesce aborted.";
437 /* Mark the current operation as cancelled. */
438- g_static_mutex_lock(&gBackupState->opLock);
439+ g_mutex_lock(&gBackupState->opLock);
440 if (gBackupState->currentOp != NULL) {
441 VmBackup_Cancel(gBackupState->currentOp);
442 VmBackup_Release(gBackupState->currentOp);
443 gBackupState->currentOp = NULL;
444 }
445- g_static_mutex_unlock(&gBackupState->opLock);
446+ g_mutex_unlock(&gBackupState->opLock);
447
448 #ifdef __linux__
449 /* If quiescing has been completed, then undo it. */
450@@ -559,7 +559,7 @@ VmBackupPostProcessCurrentOp(gboolean *p
451
452 *pending = FALSE;
453
454- g_static_mutex_lock(&gBackupState->opLock);
455+ g_mutex_lock(&gBackupState->opLock);
456
457 if (gBackupState->currentOp != NULL) {
458 g_debug("%s: checking %s\n", __FUNCTION__, gBackupState->currentOpName);
459@@ -626,7 +626,7 @@ VmBackupPostProcessCurrentOp(gboolean *p
460 }
461
462 exit:
463- g_static_mutex_unlock(&gBackupState->opLock);
464+ g_mutex_unlock(&gBackupState->opLock);
465 return retVal;
466 }
467
468@@ -1007,7 +1007,7 @@ VmBackupStartCommon(RpcInData *data,
469 gBackupState->provider = provider;
470 gBackupState->completer = completer;
471 gBackupState->needsPriv = FALSE;
472- g_static_mutex_init(&gBackupState->opLock);
473+ g_mutex_init(&gBackupState->opLock);
474 gBackupState->enableNullDriver = VMBACKUP_CONFIG_GET_BOOL(ctx->config,
475 "enableNullDriver",
476 TRUE);
477--- a/open-vm-tools/services/plugins/vmbackup/vmBackupInt.h
478+++ b/open-vm-tools/services/plugins/vmbackup/vmBackupInt.h
479@@ -111,7 +111,7 @@ typedef struct VmBackupState {
480 ToolsAppCtx *ctx;
481 VmBackupOp *currentOp;
482 const char *currentOpName;
483- GStaticMutex opLock; // See note above
484+ GMutex opLock; // See note above
485 char *volumes;
486 char *snapshots;
487 guint pollPeriod;
488@@ -207,14 +207,14 @@ VmBackup_SetCurrentOp(VmBackupState *sta
489 ASSERT(state->currentOp == NULL);
490 ASSERT(currentOpName != NULL);
491
492- g_static_mutex_lock(&state->opLock);
493+ g_mutex_lock(&state->opLock);
494
495 state->currentOp = op;
496 state->callback = callback;
497 state->currentOpName = currentOpName;
498 state->forceRequeue = (callback != NULL && op == NULL);
499
500- g_static_mutex_unlock(&state->opLock);
501+ g_mutex_unlock(&state->opLock);
502
503 return (op != NULL);
504 }
505--- a/open-vm-tools/services/vmtoolsd/cmdLine.c
506+++ b/open-vm-tools/services/vmtoolsd/cmdLine.c
507@@ -304,9 +304,7 @@ ToolsCore_ParseCommandLine(ToolsServiceS
508 }
509
510 context = g_option_context_new(NULL);
511-#if GLIB_CHECK_VERSION(2, 12, 0)
512 g_option_context_set_summary(context, N_("Runs the VMware Tools daemon."));
513-#endif
514 g_option_context_add_main_entries(context, clOptions, NULL);
515 g_option_group_set_error_hook(g_option_context_get_main_group(context),
516 ToolsCoreCmdLineError);
517--- a/open-vm-tools/services/vmtoolsd/mainLoop.c
518+++ b/open-vm-tools/services/vmtoolsd/mainLoop.c
519@@ -550,10 +550,6 @@ ToolsCore_Setup(ToolsServiceState *state
520 GMainContext *gctx;
521 ToolsServiceProperty ctxProp = { TOOLS_CORE_PROP_CTX };
522
523- if (!g_thread_supported()) {
524- g_thread_init(NULL);
525- }
526-
527 /*
528 * Useful for debugging purposes. Log the vesion and build information.
529 */
530--- a/open-vm-tools/services/vmtoolsd/serviceObj.c
531+++ b/open-vm-tools/services/vmtoolsd/serviceObj.c
532@@ -180,14 +180,14 @@ ToolsCoreServiceGetProperty(GObject *obj
533
534 id -= 1;
535
536- g_mutex_lock(self->lock);
537+ g_mutex_lock(&self->lock);
538
539 if (id < self->props->len) {
540 ServiceProperty *p = &g_array_index(self->props, ServiceProperty, id);
541 g_value_set_pointer(value, p->value);
542 }
543
544- g_mutex_unlock(self->lock);
545+ g_mutex_unlock(&self->lock);
546 }
547
548
549@@ -217,14 +217,14 @@ ToolsCoreServiceSetProperty(GObject *obj
550
551 id -= 1;
552
553- g_mutex_lock(self->lock);
554+ g_mutex_lock(&self->lock);
555
556 if (id < self->props->len) {
557 p = &g_array_index(self->props, ServiceProperty, id);
558 p->value = g_value_get_pointer(value);
559 }
560
561- g_mutex_unlock(self->lock);
562+ g_mutex_unlock(&self->lock);
563
564 if (p != NULL) {
565 g_object_notify(object, p->name);
566@@ -260,7 +260,7 @@ ToolsCoreServiceCtor(GType type,
567 params);
568
569 self = TOOLSCORE_SERVICE(object);
570- self->lock = g_mutex_new();
571+ g_mutex_init(&self->lock);
572 self->props = g_array_new(FALSE, FALSE, sizeof (ServiceProperty));
573
574 return object;
575@@ -296,7 +296,7 @@ ToolsCoreServiceDtor(GObject *object)
576 }
577
578 g_array_free(self->props, TRUE);
579- g_mutex_free(self->lock);
580+ g_mutex_clear(&self->lock);
581 }
582
583
584@@ -459,7 +459,7 @@ ToolsCoreService_RegisterProperty(ToolsC
585 prop->name,
586 G_PARAM_READWRITE);
587
588- g_mutex_lock(obj->lock);
589+ g_mutex_lock(&obj->lock);
590
591 sprop.id = ++PROP_ID_SEQ;
592 sprop.name = g_strdup(prop->name);
593@@ -467,6 +467,6 @@ ToolsCoreService_RegisterProperty(ToolsC
594 g_array_append_val(obj->props, sprop);
595 g_object_class_install_property(G_OBJECT_CLASS(klass), sprop.id, pspec);
596
597- g_mutex_unlock(obj->lock);
598+ g_mutex_unlock(&obj->lock);
599 }
600
601--- a/open-vm-tools/services/vmtoolsd/serviceObj.h
602+++ b/open-vm-tools/services/vmtoolsd/serviceObj.h
603@@ -1,5 +1,5 @@
604 /*********************************************************
605- * Copyright (C) 2009-2016 VMware, Inc. All rights reserved.
606+ * Copyright (C) 2009-2018 VMware, Inc. All rights reserved.
607 *
608 * This program is free software; you can redistribute it and/or modify it
609 * under the terms of the GNU Lesser General Public License as published
610@@ -39,7 +39,7 @@
611
612 typedef struct ToolsCoreService {
613 GObject parent;
614- GMutex *lock;
615+ GMutex lock;
616 GArray *props;
617 } ToolsCoreService;
618
619--- a/open-vm-tools/services/vmtoolsd/threadPool.c
620+++ b/open-vm-tools/services/vmtoolsd/threadPool.c
621@@ -1,5 +1,5 @@
622 /*********************************************************
623- * Copyright (C) 2010-2016 VMware, Inc. All rights reserved.
624+ * Copyright (C) 2010-2018 VMware, Inc. All rights reserved.
625 *
626 * This program is free software; you can redistribute it and/or modify it
627 * under the terms of the GNU Lesser General Public License as published
628@@ -40,7 +40,7 @@ typedef struct ThreadPoolState {
629 GThreadPool *pool;
630 GQueue *workQueue;
631 GPtrArray *threads;
632- GMutex *lock;
633+ GMutex lock;
634 guint nextWorkId;
635 } ThreadPoolState;
636
637@@ -170,9 +170,9 @@ ToolsCorePoolDoWork(gpointer data)
638 * In multi-threaded mode, the thread pool callback already did this.
639 */
640 if (gState.pool == NULL) {
641- g_mutex_lock(gState.lock);
642+ g_mutex_lock(&gState.lock);
643 g_queue_remove(gState.workQueue, work);
644- g_mutex_unlock(gState.lock);
645+ g_mutex_unlock(&gState.lock);
646 }
647
648 work->cb(gState.ctx, work->data);
649@@ -223,7 +223,7 @@ ToolsCorePoolRunThread(gpointer data)
650 task->cb(gState.ctx, task->data);
651 task->active = FALSE;
652
653- g_mutex_lock(gState.lock);
654+ g_mutex_lock(&gState.lock);
655 /* If not active, the shutdown function will clean things up. */
656 if (gState.active) {
657 g_ptr_array_remove(gState.threads, task);
658@@ -232,7 +232,7 @@ ToolsCorePoolRunThread(gpointer data)
659 task,
660 ToolsCorePoolDestroyThread);
661 }
662- g_mutex_unlock(gState.lock);
663+ g_mutex_unlock(&gState.lock);
664
665 return NULL;
666 }
667@@ -257,9 +257,9 @@ ToolsCorePoolRunWorker(gpointer state,
668 {
669 WorkerTask *work;
670
671- g_mutex_lock(gState.lock);
672+ g_mutex_lock(&gState.lock);
673 work = g_queue_pop_tail(gState.workQueue);
674- g_mutex_unlock(gState.lock);
675+ g_mutex_unlock(&gState.lock);
676
677 ASSERT(work != NULL);
678
679@@ -300,7 +300,7 @@ ToolsCorePoolSubmit(ToolsAppCtx *ctx,
680 task->data = data;
681 task->dtor = dtor;
682
683- g_mutex_lock(gState.lock);
684+ g_mutex_lock(&gState.lock);
685
686 if (!gState.active) {
687 g_free(task);
688@@ -351,7 +351,7 @@ ToolsCorePoolSubmit(ToolsAppCtx *ctx,
689 ToolsCorePoolDestroyTask);
690
691 exit:
692- g_mutex_unlock(gState.lock);
693+ g_mutex_unlock(&gState.lock);
694 return id;
695 }
696
697@@ -378,7 +378,7 @@ ToolsCorePoolCancel(guint id)
698
699 g_return_if_fail(id != 0);
700
701- g_mutex_lock(gState.lock);
702+ g_mutex_lock(&gState.lock);
703 if (!gState.active) {
704 goto exit;
705 }
706@@ -390,7 +390,7 @@ ToolsCorePoolCancel(guint id)
707 }
708
709 exit:
710- g_mutex_unlock(gState.lock);
711+ g_mutex_unlock(&gState.lock);
712
713 if (task != NULL) {
714 if (task->srcId > 0) {
715@@ -410,11 +410,12 @@ exit:
716 *
717 * @see ToolsCorePool_StartThread()
718 *
719- * @param[in] ctx Application context.
720- * @param[in] cb Callback that executes the task.
721- * @param[in] interrupt Callback that interrupts the task.
722- * @param[in] data Opaque data.
723- * @param[in] dtor Destructor for the task data.
724+ * @param[in] ctx Application context.
725+ * @param[in] threadName Name for the new thread.
726+ * @param[in] cb Callback that executes the task.
727+ * @param[in] interrupt Callback that interrupts the task.
728+ * @param[in] data Opaque data.
729+ * @param[in] dtor Destructor for the task data.
730 *
731 * @return TRUE iff thread was successfully started.
732 *
733@@ -423,6 +424,7 @@ exit:
734
735 static gboolean
736 ToolsCorePoolStart(ToolsAppCtx *ctx,
737+ const gchar *threadName,
738 ToolsCorePoolCb cb,
739 ToolsCorePoolCb interrupt,
740 gpointer data,
741@@ -431,7 +433,7 @@ ToolsCorePoolStart(ToolsAppCtx *ctx,
742 GError *err = NULL;
743 StandaloneTask *task = NULL;
744
745- g_mutex_lock(gState.lock);
746+ g_mutex_lock(&gState.lock);
747 if (!gState.active) {
748 goto exit;
749 }
750@@ -442,7 +444,7 @@ ToolsCorePoolStart(ToolsAppCtx *ctx,
751 task->interrupt = interrupt;
752 task->data = data;
753 task->dtor = dtor;
754- task->thread = g_thread_create(ToolsCorePoolRunThread, task, TRUE, &err);
755+ task->thread = g_thread_try_new(threadName, ToolsCorePoolRunThread, task, &err);
756
757 if (err == NULL) {
758 g_ptr_array_add(gState.threads, task);
759@@ -454,7 +456,7 @@ ToolsCorePoolStart(ToolsAppCtx *ctx,
760 }
761
762 exit:
763- g_mutex_unlock(gState.lock);
764+ g_mutex_unlock(&gState.lock);
765 return task != NULL;
766 }
767
768@@ -497,7 +499,6 @@ ToolsCorePool_Init(ToolsAppCtx *ctx)
769 gState.pool = g_thread_pool_new(ToolsCorePoolRunWorker,
770 NULL, maxThreads, FALSE, &err);
771 if (err == NULL) {
772-#if GLIB_CHECK_VERSION(2, 10, 0)
773 gint maxIdleTime;
774 gint maxUnused;
775
776@@ -517,7 +518,6 @@ ToolsCorePool_Init(ToolsAppCtx *ctx)
777
778 g_thread_pool_set_max_idle_time(maxIdleTime);
779 g_thread_pool_set_max_unused_threads(maxUnused);
780-#endif
781 } else {
782 g_warning("error initializing thread pool, running single threaded: %s",
783 err->message);
784@@ -526,7 +526,7 @@ ToolsCorePool_Init(ToolsAppCtx *ctx)
785 }
786
787 gState.active = TRUE;
788- gState.lock = g_mutex_new();
789+ g_mutex_init(&gState.lock);
790 gState.threads = g_ptr_array_new();
791 gState.workQueue = g_queue_new();
792
793@@ -553,9 +553,9 @@ ToolsCorePool_Shutdown(ToolsAppCtx *ctx)
794 {
795 guint i;
796
797- g_mutex_lock(gState.lock);
798+ g_mutex_lock(&gState.lock);
799 gState.active = FALSE;
800- g_mutex_unlock(gState.lock);
801+ g_mutex_unlock(&gState.lock);
802
803 /* Notify all spawned threads to stop. */
804 for (i = 0; i < gState.threads->len; i++) {
805@@ -589,7 +589,7 @@ ToolsCorePool_Shutdown(ToolsAppCtx *ctx)
806 /* Cleanup. */
807 g_ptr_array_free(gState.threads, TRUE);
808 g_queue_free(gState.workQueue);
809- g_mutex_free(gState.lock);
810+ g_mutex_clear(&gState.lock);
811 memset(&gState, 0, sizeof gState);
812 g_object_set(ctx->serviceObj, TOOLS_CORE_PROP_TPOOL, NULL, NULL);
813 }
814--- a/open-vm-tools/vgauth/service/fileLogger.c
815+++ b/open-vm-tools/vgauth/service/fileLogger.c
816@@ -74,11 +74,7 @@ ServiceFileLoggerOpen(FileLoggerData *da
817
818 if (g_file_test(path, G_FILE_TEST_EXISTS)) {
819 /* GStatBuf was added in 2.26. */
820-#if GLIB_CHECK_VERSION(2, 26, 0)
821 GStatBuf fstats;
822-#else
823- struct stat fstats;
824-#endif
825
826 if (g_stat(path, &fstats) > -1) {
827 g_atomic_int_set(&data->logSize, (gint) fstats.st_size);
diff --git a/debian/patches/gcc9-build-error-in-vmblocktest.c.patch b/debian/patches/gcc9-build-error-in-vmblocktest.c.patch
828deleted file mode 1006440deleted file mode 100644
index bbc9e51..0000000
--- a/debian/patches/gcc9-build-error-in-vmblocktest.c.patch
+++ /dev/null
@@ -1,41 +0,0 @@
1From 553d128348f311080e156519e9ac26a518c8579d Mon Sep 17 00:00:00 2001
2From: Oliver Kurth <okurth@vmware.com>
3Date: Fri, 2 Aug 2019 11:07:19 -0700
4Subject: [PATCH] Fix gcc 9.1 build error in vmblocktest.c
5
6GCC 9.1 in Ubuntu eoan (19.10) failed to build open-vm-tools:
7error: '__builtin_strncpy' specified bound 4096 equals destination
8size [-Werror=stringop-truncation]
9
10Origin: upstream, https://github.com/vmware/open-vm-tools/commit/553d1283
11Bug-Ubuntu: https://bugs.launchpad.net/bugs/1842301
12Last-Update: 2019-09-03
13
14---
15 open-vm-tools/tests/testVmblock/vmblocktest.c | 5 +++--
16 1 file changed, 3 insertions(+), 2 deletions(-)
17
18diff --git a/open-vm-tools/tests/testVmblock/vmblocktest.c b/open-vm-tools/tests/testVmblock/vmblocktest.c
19index b018301a9..c45f1b550 100644
20--- a/open-vm-tools/tests/testVmblock/vmblocktest.c
21+++ b/open-vm-tools/tests/testVmblock/vmblocktest.c
22@@ -1,5 +1,5 @@
23 /*********************************************************
24- * Copyright (C) 2006-2017 VMware, Inc. All rights reserved.
25+ * Copyright (C) 2006-2017,2019 VMware, Inc. All rights reserved.
26 *
27 * This program is free software; you can redistribute it and/or modify it
28 * under the terms of the GNU Lesser General Public License as published
29@@ -233,7 +233,8 @@ main(int argc,
30 }
31
32 create_file:
33- strncpy(buf, files[i].blockerName, sizeof buf);
34+ strncpy(buf, files[i].blockerName, sizeof buf - 1);
35+ buf[sizeof buf - 1] = '\0';
36 strncat(buf, FILENAME, sizeof buf - strlen(files[i].blockerName));
37 err = stat(buf, &statbuf);
38 if (!err) {
39--
402.23.0
41
diff --git a/debian/patches/series b/debian/patches/series
index 68482d7..92cb923 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,6 +1,7 @@
1debian/pam-use-common-auth-account1debian/pam-use-common-auth-account
2debian/max_nic_count2debian/max_nic_count
3debian/scsi-udev-rule3debian/scsi-udev-rule
4<<<<<<< debian/patches/series
4fix-buster-OS-reporting5fix-buster-OS-reporting
5gcc96gcc9
6gcc9-Remove-GLib-2.32-deprecated-APIs-from-tools.patch7gcc9-Remove-GLib-2.32-deprecated-APIs-from-tools.patch
@@ -10,3 +11,7 @@ gcc9-build-error-in-vmblocktest.c.patch
10lp-1847157-Fix-memory-leaks-in-vix-tools-plugin.patch11lp-1847157-Fix-memory-leaks-in-vix-tools-plugin.patch
11lp-1847157-End-VGAuth-impersonation-in-the-case-of-error.patch12lp-1847157-End-VGAuth-impersonation-in-the-case-of-error.patch
12lp-1847157-Fix-leaks-in-ListAliases-and-ListMappedAliases-9bc72.patch13lp-1847157-Fix-leaks-in-ListAliases-and-ListMappedAliases-9bc72.patch
14=======
1589c0d4445_GitHub-Issue-367.-Remove-references-to-deprecated-G_INLINE_FUNC
16fix_zfs_fs_detection
17>>>>>>> debian/patches/series
diff --git a/open-vm-tools/AUTHORS b/open-vm-tools/AUTHORS
index ff87a57..08cc28e 100644
--- a/open-vm-tools/AUTHORS
+++ b/open-vm-tools/AUTHORS
@@ -37,6 +37,15 @@ Ed Schouten Use standard SYSCTL_ADD_OID() macro to access the
37Steve Wills Fix vmmemctl.ko driver build for supported FreeBSD releases.37Steve Wills Fix vmmemctl.ko driver build for supported FreeBSD releases.
38 - https://github.com/vmware/open-vm-tools/pull/14038 - https://github.com/vmware/open-vm-tools/pull/140
3939
40John Eismeier Propose fix some spelling.
41 - https://github.com/vmware/open-vm-tools/pull/264
42
43Josh Paetzel Additional changes to vmmemctl.ko for FreeBSD 12.0 API changes.
44 - https://github.com/vmware/open-vm-tools/pull/286
45
40[Code]Ai Highlighted a potential NULL pointer dereference and four46[Code]Ai Highlighted a potential NULL pointer dereference and four
41 pieces of dead code.47 pieces of dead code.
42 - https://github.com/vmware/open-vm-tools/pull/24748 - https://github.com/vmware/open-vm-tools/pull/247
49
50Haruki Tsurumoto Fix Asianux identification
51 - https://github.com/vmware/open-vm-tools/pull/325
diff --git a/open-vm-tools/ChangeLog b/open-vm-tools/ChangeLog
index 2e5317f..bcbdaeb 100644
--- a/open-vm-tools/ChangeLog
+++ b/open-vm-tools/ChangeLog
@@ -1,40768 +1,20078 @@
1commit 4826a76513b6f8254132f664e07fa70ed18f22c41commit 94abb05ae948eae31091a5bdcdd5d78e5e0192d1
2Author: Oliver Kurth <okurth@vmware.com>2Author: Oliver Kurth <okurth@vmware.com>
3Date: Sat Mar 16 10:40:23 2019 -07003Date: Wed Oct 2 17:48:35 2019 -0700
44
5 update version and build number5 Fix leaks in ListAliases and ListMappedAliases.
66
7commit 990cc40de10f257d1d3c01b69fe476c233afb9507 The 'record' for each alias was being leaked.
8
9commit 87589da5255d84efad0c50446246b2788eeab582
8Author: Oliver Kurth <okurth@vmware.com>10Author: Oliver Kurth <okurth@vmware.com>
9Date: Sat Mar 16 10:39:48 2019 -070011Date: Fri Sep 20 13:11:24 2019 -0700
1012
11 correct verson numbers13 release notes for 11.0.0
1214
13commit f6a274cf64eebfd574e8cf587b4ebaf1c579267f15commit 3c03fd5446ddd23979380fd2518f1f5c7c116dbd
14Author: Oliver Kurth <okurth@vmware.com>16Author: Oliver Kurth <okurth@vmware.com>
15Date: Sat Mar 16 10:27:03 2019 -070017Date: Fri Sep 20 11:08:35 2019 -0700
1618
17 Update release notes for 10.3.1019 update copyright header for lib/include/vmware/guestrpc/tclodefs.h
1820
19commit 640bd4f9c012b201ad1d45a131dad2e804f5376621commit 99145edb39cc1e08b0848ea464fd17dca2ef2541
20Author: Oliver Kurth <okurth@vmware.com>22Author: Oliver Kurth <okurth@vmware.com>
21Date: Wed Feb 6 16:47:22 2019 -080023Date: Fri Sep 20 11:07:16 2019 -0700
2224
23 sync deploypkg files25 update build number for release
2426
25commit 182eda3bc5f371339114241f0581f446e72def6d27commit 570ec94ccfc5bcf2a55d891ae8af2a24bb4e9caf
26Author: Oliver Kurth <okurth@vmware.com>28Author: Oliver Kurth <okurth@vmware.com>
27Date: Tue Feb 5 17:36:53 2019 -080029Date: Thu Aug 29 17:14:39 2019 -0700
2830
29 Update copyright year to 2019 for OVT 10.3.10 files.31 Due to a quirk the way patches were generated, the 'coomon-agent' directory was not removed as intended, but just contained empty files
30
31 * Few dnd related files have been modified since 10.3.5 OVT and
32 we just missed updating the copyright year to 2019.
33
34 * Updated the copyright year accordingly.
3532
36commit ba83c29fcd703ecb6a13a7767bad180033234aea33commit ae791f849d0e49d968a3ba068d6f421de936754d
37Author: Oliver Kurth <okurth@vmware.com>34Author: Oliver Kurth <okurth@vmware.com>
38Date: Tue Jan 29 17:24:44 2019 -080035Date: Fri Aug 23 13:33:55 2019 -0700
3936
40 Fix CentOS 7.6 detection37 tools.conf example: add vss.disableAppQuiescing
41
42 The version information in /etc/centos-release has 3 parts,
43 in particular for CentOS 7.6:
44
45 CentOS Linux release 7.6.1810 (Core)
46
47 This was misidentified as CentOS 6 because the substring "6."
48 was matched before matching "7.". This change fixes this by
49 requiring a space before the major version.
5038
51commit f4708f4b5a9d24b122237875ce6a542f267caab339commit 867f9cf4fd9903e1e10e4d7f70fef3b7fdb2a5d3
52Author: Oliver Kurth <okurth@vmware.com>40Author: Oliver Kurth <okurth@vmware.com>
53Date: Tue Jan 29 17:24:44 2019 -080041Date: Mon Aug 5 11:22:01 2019 -0700
5442
55 Include vmware/tools/log.h to define g_info.43 Enable the guest OS disk mapping feature as default.
56
57 A recent change added a call to g_info from syncManifest.c. This
58 in turn is causing open-vm-tools builds to fail because g_info is
59 not available on SLES 12sp1.
60 44
61 To fix the problem, include vmware/tools/log.h in syncManifest.c.45 Enabling the OS disk mapping feature in VMware Tools 11.0.0 for
62 log.h defines g_info as a macro.46 Windows and Linux guests.
6347
64commit 139a21cab79d971e9fe3ea5b8e993646b2e6cb4848commit 782b42a5248cd01d37f0002aa7e30df4cc787129
65Author: Oliver Kurth <okurth@vmware.com>49Author: Oliver Kurth <okurth@vmware.com>
66Date: Tue Jan 29 17:24:44 2019 -080050Date: Mon Aug 5 11:22:01 2019 -0700
6751
68 Always send VMBACKUP_EVENT_GENERIC_MANIFEST during quiesced snapshots.52 Fix broken command: vmtoolsd --cmd info-get | info-set
69
70 vSphere 6.7 added a host-side interface that allows VMTools to send
71 a "generic" backup manifest during a quiesced snapshot on Linux guests.
72 VMTools 10.2.0 or later tries to notify the host of the backup manifest
73 file through a vmbackup event message VMBACKUP_EVENT_GENERIC_MANIFEST.
74 If the host is unable to field the message, then VMTools logs the
75 failure and then continues with the quiesced snapshot in the older
76 fashion, without the backup manifest.
77
78 An earlier change attempted to reduce the amount of logging done when
79 running on older hosts that don't support VMBACKUP_EVENT_GENERIC_MANIFEST
80 by detecting when sending VMBACKUP_EVENT_GENERIC_MANIFEST fails and
81 not sending the message again for subsequent quiesced snapshots.
82 However, subsequent stress testing has uncovered problems with this
83 approach when running on newer hosts; specifically, errors may sometimes
84 be encountered on newer hosts when sending VMBACKUP_EVENT_GENERIC_MANIFEST.
85 Therefore this change backs out that earlier change.
86
87 Note that the need to solve the problem that that earlier change was
88 intended to solve has been reduced because support for
89 VMBACKUP_EVENT_GENERIC_MANIFEST has been backported to vSphere 6.5
90 P03, which is available, and vSphere 6.0 P08, which is scheduled for
91 release later this year. ESXi 5.5 is out of general support.
92
93 This change also addresses an issue that surfaced when testing on a
94 host without support for VMBACKUP_EVENT_GENERIC_MANIFEST.
95 If VMTools fails to send VMBACKUP_EVENT_GENERIC_MANIFEST, the quiesced
96 snapshot operation will be aborted rather than continuing as it should.
97 To address this, create a new function, VmBackup_SendEventNoAbort,
98 which does not abort the quiesced snapshot on failure, and call that
99 function rather than VmBackup_SendEvent when sending
100 VMBACKUP_EVENT_GENERIC_MANIFEST.
10153
102commit f9a93010ac532ab8eaaeba7f1de5c0c3e732554a54commit d4922cad5f627b1dd3315f59ed8a5ce2f4767e83
103Author: Oliver Kurth <okurth@vmware.com>55Author: Oliver Kurth <okurth@vmware.com>
104Date: Tue Jan 29 17:24:43 2019 -080056Date: Mon Aug 5 11:22:01 2019 -0700
10557
106 Update copyright year to 2019.58 [OVT] Update copyright year to 2019.
59
60 A new version of VMware Tools 11.0.0 will be released in 2019. All
61 applicable files need to stamped with 2019 copyright year.
10762
108commit 74d165bab17132b50d909b7f2e5cb19f3f140a0163commit 5cb75e0a93b9531875e9e29515a0ea912ca3aca7
109Author: Oliver Kurth <okurth@vmware.com>64Author: Oliver Kurth <okurth@vmware.com>
110Date: Tue Jan 29 14:03:19 2019 -080065Date: Mon Aug 5 11:22:00 2019 -0700
11166
112 Fix some bad derefs in primary NIC gather code67 Avoid freezing mount points for same device.
113 68
114 Found by user in https://github.com/vmware/open-vm-tools/issues/27269 Loopback device setup could cause a cyclic dependency
70 between 2 mount points. In order to break the cycle,
71 avoid freezing the mount points to the same device.
115 72
116 Debug code tries to access a struct field that may not be init'd.73 This change also skips some system mount points for 'tmpfs'
117 Pointer deref'd without a sanity check.74 and 'cgroup' etc as those share the same device/FS name.
75 This is fine because we can't quiese those mount points
76 anyway (system mount points don't support quiescing).
11877
119commit e88f91b00a715b79255de6576506d80ecfdb064c78commit 385dc97f645ccaa4a0550b53949715394a009fb6
120Author: Oliver Kurth <okurth@vmware.com>79Author: Oliver Kurth <okurth@vmware.com>
121Date: Tue Jan 29 14:03:19 2019 -080080Date: Mon Aug 5 11:21:59 2019 -0700
12281
123 Fix possible security issue with the permissions of the intermediate82 Add RpcChannel_SendOneRawPriv()
124 staging directory and path
125
126 /tmp/VMwareDnD is a staging directory used for DnD and CnP. It should be
127 a regular directory, but malicious code or user may create the /tmp/VMwareDnD
128 as a symbolic link which points elsewhere on the system. This may provide
129 user access to user B's files.
130 83
131 Do not set the permission of the root directory if the root directory84 Send privileged guest RPC "guestStore.connect" with it after the
132 already exists and has the wrong permission. The permission of the directory85 vmsvc RPC channel falls back to backdoor.
133 must be 1777 if it is created by the VMToolsi. If not, then the directory
134 has been created or modified by malicious code or user, so just cancel the
135 host to guest DnD or CnP operation.
13686
137commit bfa5e5d27a8a96a9c71fbe581f3fe32dcd2e55fd87commit e385c90808d527bce41259796badba094ad62a77
138Author: Oliver Kurth <okurth@vmware.com>88Author: Oliver Kurth <okurth@vmware.com>
139Date: Tue Jan 29 14:03:19 2019 -080089Date: Mon Aug 5 11:21:59 2019 -0700
14090
141 CONSTANT_EXPRESSION_RESULT in TimeUtil_StringToDate().91 Add an example configuration tools.conf file for tools
142 92
143 Red Hat ran coverity scan on open-vm-tools and found an occurrence93 This adds an example tools.conf file. Settings are shown in the
144 of CONSTANT_EXPRESSION_RESULT in TimeUtil_StringToDate().94 file with default values, but commented out with documentation.
14595
146commit 4bba1dcd28806eff0cb3795cbfeea32f91fb1c4096commit decb8769e31e88f23b16b7a6ff3a1545a6259abe
147Author: Oliver Kurth <okurth@vmware.com>97Author: Oliver Kurth <okurth@vmware.com>
148Date: Tue Jan 29 14:03:19 2019 -080098Date: Mon Aug 5 11:21:59 2019 -0700
14999
150 Bail out vmtoolsd early when there are RPC errors.100 [TOOLS] Fix dnd text from Linux guest
151 101
152 VMX state machine could give up quiescing operation for various102 Gtk::Widget::drag_dest_find_target() returns different values from GDK_NONE
153 reasons when vmtoolsd is busy performing necessary state transitions.103 on Gtk2 and Gtk3.
154 Once VMX gives up quiescing operation, there is no point in
155 vmtoolsd continuing with it. vmtoolsd should also give up the
156 operation asap. vmtoolsd can detect VMX state machine change
157 when it gets errors sending VMBACKUP_PROTOCOL_EVENT_SET RPC.
158 104
159 RPC errors are only used as a trigger to abort the operation.105 On Gtk2, it returns an empty string. It matches the existing code.
160 We ignore the RPC errors that might occur after aborting the106 On Gtk3, it returns "NONE". The current logic breaks.
161 operation.107
108 To overcome this issue, use Gdk::AtomString::to_cpp_type(GDK_NONE) to
109 replace the current empty string. This works on both Gtk2 and Gtk3.
162110
163commit 0cb7f7a903015e5e711fa6eb5b41748f797ce794111commit 8d299b17ba81d47f7f561479a688ab1843f904c8
164Author: Oliver Kurth <okurth@vmware.com>112Author: Oliver Kurth <okurth@vmware.com>
165Date: Tue Jan 29 14:03:19 2019 -0800113Date: Mon Aug 5 11:21:59 2019 -0700
166114
167 [10.3.10] Update copyright year to 2019.115 Fix gcc 9.1 build error in vmblocktest.c
168 116
169 Update the copyright year to 2019 for ALL open-vm-tools destined files117 GCC 9.1 in Ubuntu eoan (19.10) failed to build open-vm-tools:
170 modified since the release of 10.3.5.118 error: '__builtin_strncpy' specified bound 4096 equals destination
119 size [-Werror=stringop-truncation]
171120
172commit e569c47f85fa8520f0834148d6774c1cb66df68c121commit e8d08518353295527e635f666c0d3146dcc698cb
173Author: Oliver Kurth <okurth@vmware.com>122Author: Oliver Kurth <okurth@vmware.com>
174Date: Tue Jan 29 14:03:19 2019 -0800123Date: Sat Jul 20 17:10:07 2019 -0700
175124
176 Don't send a backup manifest when aborting a Linux quiesced snapshot.125 version 11.0.0
177 126
178 When taking a Linux quiesced snapshot, communication failures between127commit 82ef6f896c99212c9366e3e52d7767e86d9677c3
179 VMX and VMTools may result in VMTools sending a genericManifest event128Author: Oliver Kurth <okurth@vmware.com>
180 message after the quiesced snapshot operation has been aborted. If129Date: Sat Jul 20 17:03:42 2019 -0700
181 this happens, VMX will send an error back to VMTools, which in turn130
182 causes VMTools not to send genericManifest messages on subsequent131 Fix the memory leak in procMgr library.
183 quiesced snapshots even if the host supports such messages.
184 132
185 One aspect of the implementation that gives rise to this behavior is133 In a specific code path, procCmdAbsPath attribute is ovewritten
186 the use of the sync provider's snapshotDone function to undo a134 with the new memory. This leads to a memory leak for the previously
187 quiescing operation. Specifically, if VMTools aborts a quiesced135 allocated memory.
188 snapshot when the file system is quiesced, the quiescing must be136
189 undone. Currently, this is handled by calling the sync provider's137commit 003ed9e082dd10c67aa022514ad0c662c7e1a6a4
190 snapshotDone function. This is the same function that is called to138Author: Oliver Kurth <okurth@vmware.com>
191 complete the quiescing snapshot protocol when it is successful. In139Date: Sat Jul 20 17:03:42 2019 -0700
192 some respects this makes sense, since in either case snapshotDone140
193 unquiesces the file system. However, architecturally and conceptually,141 GuestInfo: fix memory leak in GuestInfoGetPrimaryIP()
194 it seems useful to distinguish between the action to be taken in the
195 successful case versus the aborting case. It's also useful to do so
196 in practice, because the successful case sends the genericManifest
197 event to notify the host there is a backup manifest file, while the
198 aborting case should not do that.
199 142
200 To address the issue, add an "undo" function for the Linux sync143 "ipstr" was not free'ed when it was not being used.
201 provider. The undo function is called instead of snapshotDone as
202 part of aborting a quiesced snapshot in which the file system is
203 quiesced at the time of the abort.
204144
205commit 81835cd72369b5b75fc5b0bed761f3b75cb7146b145commit 3d60252dc25705841c4afb49e766be2bd7815acd
206Author: Oliver Kurth <okurth@vmware.com>146Author: Oliver Kurth <okurth@vmware.com>
207Date: Tue Jan 29 14:03:18 2019 -0800147Date: Sat Jul 20 17:03:42 2019 -0700
208148
209 Special-case profile loading for StartProgram149 Avoid emitting a trailing comma in the GuestInfoSendDiskInfoV1 JSON RPC
210 150
211 Keep the user's profile loaded for the life of the151 Although currently accepted by the JSON library that we are using
212 program, to avoid races where its unloaded too quickly.152 in VMX, that superfluous comma is strictly invalid according to the
153 JSON standard - ECMA-404.
213154
214commit d3515adb2a1617dcde4b65a6a9ab72ee8624454b155commit f65edaec32d2e1c7c14d69f4f2af669805cfd4b4
215Author: Oliver Kurth <okurth@vmware.com>156Author: Oliver Kurth <okurth@vmware.com>
216Date: Tue Jan 29 14:03:18 2019 -0800157Date: Sat Jul 20 17:03:42 2019 -0700
217158
218 Changes to common source files not applicable to open-vm-tools.159 [Tools/dndcp] Fix two coverity issues reported by a customer.
219160
220commit 4d3e3183bc04517cf75ab590a12e14224207eb6d161commit 74fe39c2abac9da4d45188eec8b389be421f7c8f
221Author: Oliver Kurth <okurth@vmware.com>162Author: Oliver Kurth <okurth@vmware.com>
222Date: Tue Jan 29 14:03:18 2019 -0800163Date: Sat Jul 20 17:03:42 2019 -0700
223164
224 Bump up the SYSIMAGE_VERSION for VMware tools 10.3.10165 Add the SLEDGEHAMMER code name to the 11.0.0 release version defines.
225
226 The last released deploypkg version for 'VMware Tools' 10.3.5 is 8.4.1.
227 Bumping up the CBS version to 8.4.10.
228166
229commit 8f3630e77bcf647c22c40093bb37500f3032e578167commit 0c6ad5edceca60dc05eb9f3b1ee6ac42dc0455ef
230Author: Oliver Kurth <okurth@vmware.com>168Author: Oliver Kurth <okurth@vmware.com>
231Date: Tue Jan 29 14:03:18 2019 -0800169Date: Wed Jul 3 14:28:56 2019 -0700
232170
233 Deploypkg log files of linux should not be world readable.171 Fix a Coverity issue reported in vgauth/serviceImpl/verify.c
234172
235commit 4470d99e5eaf19cea741e6fa6f46c72acd57b3e1173commit 47c8f75e4516552615c070c6920633f7e8e572a0
236Author: Oliver Kurth <okurth@vmware.com>174Author: Oliver Kurth <okurth@vmware.com>
237Date: Tue Jan 29 14:03:18 2019 -0800175Date: Wed Jul 3 14:28:56 2019 -0700
238176
239 General code clean-up.177 Fix process command name for special linux processes.
240 178
241 bora/lib/misc/posixPosix.c:179 While listing down the processes in a linux guest, the existing
242 Treat local variables "len" consistently as "size_t" type in180 procMgr library reads /proc/<PID>/cmdline file and parses the
243 Posix_Getmntent_r()181 content. While reading this, an assumption is made that there is
182 a null terminating character at the end of the file content.
183 This holds true for most of the processes. But for few special processes,
184 the cmdline file doesn't have the terminating null character.
244 185
245 bora-vmsoft/apps/toolbox-cmd/toolboxcmd-shrink.c:186 Proper content from cmdline file:
246 Improve readability of error handling logic in ShrinkDoWipeAndShrink()
247 and remove another line of dead code.
248 187
249 bora-vmsoft/lib/procMgr/procMgrPosix.c:188 /usr/lib/systemd/systemd\0--switched-root\0--system\0--deserialize\021\0
250 Recent discussions about setting "errno" to ENOENT when either189 /usr/sbin/vmtoolsd\0
251 getpwuid_r() or getpwnam_r() return 0 (success) if there is no passwd190 sshd: root@pts/2\0\0\0
252 entry for the user have vacillated.191
192 Example cmdline file where NUL terminator is missing:
253 193
254 Since none of the current callers of the routines in procMgrPosix.c194 avahi-daemon: running [linux.local]
255 query the contents of "errno", the current consensus is to simply log195 avahi-daemon: chroot helper
256 a warning message along with reason for the failure.
257196
258commit 5f3f6ccd3ad143d64f2927bd19791a6148e1e2ba197commit 2660d40ca4f5beca0ba3a4c68a66f8c7dcf77a67
259Author: Oliver Kurth <okurth@vmware.com>198Author: Oliver Kurth <okurth@vmware.com>
260Date: Tue Jan 29 14:03:18 2019 -0800199Date: Wed Jul 3 14:28:56 2019 -0700
261200
262 Fix NULL pointer dereference and remove three lines of dead code.201 Fix the command name for few linux processes.
263 202
264 QbitLogic has run [Code]Ai on the open-vm-tools source code and203 ProcMgr library publishes the 'command name' attribute for
265 and notified VMware of a potential NULL pointer reference and four204 each process while listing down all the processes. For doing this,
266 pieces of dead code.205 the commandline is first parsed from /proc/<PID>/cmdline file
206 and the part starting from the right-most '/' is considered as the
207 command name. This is OK only if we have an absolute path for the
208 command binary. Other wise, this may result in incorrect results.
267 209
268 See https://github.com/vmware/open-vm-tools/pull/247210 For example:
211 sshd: root@pts/1
212 gdm-session-worker [pam/gdm-autologin]
269 213
270 bora-vmsoft/services/vmtoolsd/pluginMgr.c214 Fixed the code to ignore the parsing if we do not have an absolute
271 The proposed fix conditionally emitted a log message. That fix has215 path.
272 been reworked to consistently emit a log message with conditional
273 content.
274 216
275 bora/lib/misc/posixPosix.c217 Note: There are two ways how the command name is retrieved for each
276 bora-vmsoft/apps/toolbox-cmd/toolboxcmd-shrink.c218 process.
277 Remove one line of dead code from each source file.
278 219
279 bora-vmsoft/lib/procMgr/procMgrPosix.c:220 1. /proc/<PID>/cmdline is parsed.
280 Suggested dead code fix actually pointed to a bug where errno
281 was not getting updated as intended.
282 221
283 bora-vmsoft/services/plugins/guestInfo/perfMonLinux.c:222 If (1) fails for some reason, then
284 Suggested dead code is no longer dead; change not applicable.223
224 2. /proc/<PID>/status is parsed.
225
226 There is no issue with (2). This changeset fixes the parsing issue only
227 with (1) approach mentioned above.
285228
286commit f10780bc3d7119d90bf72c0cf2f07066955d7d98229commit 7aaf580b14f44a994100ede098e0ced5d60ba484
287Author: Oliver Kurth <okurth@vmware.com>230Author: Oliver Kurth <okurth@vmware.com>
288Date: Tue Jan 29 14:03:18 2019 -0800231Date: Wed Jul 3 14:28:56 2019 -0700
289232
290 Bump VMware Tools version to 10.3.10 for the next scheduled update release233 Add support for NVMe disks; IDE and SATA disk devices in 3.x Linux kernels
291 234
292 Set the VMware Tools version as TOOLS_VERSION_JACKHAMMER_UPDATE2 = 10.3.10235 Support has been added for virtual disks attached to an NVMe
236 controller. The device "label" will provide the "nvme<n>" for the
237 controller. The disk unit is provided in the device "nsid" file.
238 An earlier implementation (Linux 2.6 kernels) provided the unit
239 number as the final digit group in the device node name.
240
241 The Linux 3.x kernel has some differences in the layout of IDE and
242 SATA disk devices in the sysfs filesystem. The differences from the
243 sysfs in a 2.6 Linux kernel are:
244 - The IDE "class" file and SATA "class" and "label" files are in a
245 different directory.
246 - IDE controller and SATA device nodes begin with "ata" where "host"
247 was used in earlier kernel sysfs filesystems.
248
249 GuestInfoGetDevClass() has been modfied to check in two possible
250 locations for the "class" file. The directory located will also
251 contain the "label" file for SCSI, SAS, and SATA disk devices.
252
253 GuestInfoGetIdeSataDev() has been modified to search for either
254 ata<n> or host<n> directories in the sysfs tree for the disk device.
293255
294commit f2ff192717375b95a6b7e278fb47dbb3d3bc56d1256commit 193a5f93d6678b2ebfec1cf365a84bfd8533650d
295Author: Oliver Kurth <okurth@vmware.com>257Author: Oliver Kurth <okurth@vmware.com>
296Date: Wed Nov 7 15:00:09 2018 -0800258Date: Wed Jul 3 14:26:55 2019 -0700
297259
298 release notes for 10.3.5260 Common header file change not applicable to open-vm-tools.
299261
300commit 8f98dbc87304546cbb75756bbad8ba0dbc0221a4262commit 2657373a9321ad4090af75d84beac00836170e27
301Author: Oliver Kurth <okurth@vmware.com>263Author: Oliver Kurth <okurth@vmware.com>
302Date: Wed Nov 7 14:13:03 2018 -0800264Date: Wed Jul 3 14:26:55 2019 -0700
303265
304 add 10.3.5 changes to ChangeLog266 Truncate oversize partition names
305commit 583fc02dbee4ba88a20c67a0f5e5a9b023b551ea267
268 Truncate disk partition names if they are too large, rather than just
269 skipping all the disk information for the guest. Closes
270 https://github.com/vmware/open-vm-tools/issues/346 .
271
272commit 6b8ffb7199159ab3a306646bc572f6a83a8ce7f6
306Author: Oliver Kurth <okurth@vmware.com>273Author: Oliver Kurth <okurth@vmware.com>
307Date: Tue Nov 6 17:14:40 2018 -0800274Date: Wed Jul 3 14:26:55 2019 -0700
308275
309 bump version and build number276 Common header file change not applicable to open-vm-tools.
310277
311commit d51ec15038c43472e9bc48de7081b0954a122f97278commit fe04b4263ae90af524fe51e124e206df737e974b
312Author: Oliver Kurth <okurth@vmware.com>279Author: Oliver Kurth <okurth@vmware.com>
313Date: Tue Nov 6 17:13:04 2018 -0800280Date: Wed Jul 3 14:26:55 2019 -0700
314281
315 sync deploypkg files282 Suppress possible NULL pointer deref in a debug message.
316283
317commit b4b07f53c71a83beed8fdc11f2dfeeb43aa20fda284commit 130334ca6f1cf6d696b0fe36d54b83f1f7d7bc2e
318Author: Oliver Kurth <okurth@vmware.com>285Author: Oliver Kurth <okurth@vmware.com>
319Date: Fri Oct 5 13:55:27 2018 -0700286Date: Wed Jul 3 14:26:55 2019 -0700
320287
321 Use bitwise AND operation while fetching current IOPL.288 Common header file change not applicable to open-vm-tools.
322
323 Iopl_Get() was using logical AND operation which could result
324 in wrong IOPL value. We should be using bitwise AND instead.
325289
326commit 87593b29e5c337141be65e4430fb95a4f1741afb290commit ace8b9e3c13a0b320835d36f569d2c7e5c6513a7
327Author: Oliver Kurth <okurth@vmware.com>291Author: Oliver Kurth <okurth@vmware.com>
328Date: Fri Oct 5 13:55:27 2018 -0700292Date: Wed Jul 3 14:26:55 2019 -0700
329293
330 Optional override for short and long OS names sent from Tools294 Changes to common header files not applicable to open-vm-tools.
331
332 Added support for customers to override the returned long and short OS
333 names through the tools config file. If the setting is present, then names
334 gathered by hostinfo will be ignored. The user is responsible for setting
335 the appropriate names.
336
337 The override will be ignored if the short-name setting is not present in
338 tools.conf.
339
340 An empty string will be sent for the long OS name if only the short-name
341 setting is present.
342
343 Appropriate warning msg will be generated in both cases.
344
345 Example of the conf setting:
346
347 [guestosinfo]
348 short-name = centos6-64
349 long-name = some long name
350295
351commit b08cd0da457263f80e84ca95348c2a97cb7e22a5296commit eda7db540bb048ac406e6624786c300cb17968c2
352Author: Oliver Kurth <okurth@vmware.com>297Author: Oliver Kurth <okurth@vmware.com>
353Date: Mon Sep 17 16:41:19 2018 -0700298Date: Wed Jul 3 14:26:55 2019 -0700
354299
355 Hgfs Server Linux: fix the share permissions on a file rename or delete300 Common header file change not applicable to open-vm-tools.
356
357 Coverity found that the argumeents to obtain the share permissions
358 on a file rename were swapped. Even though they are tested together
359 in an if statement which is not an issue, it could be in the future.
360
361 Reverse arguments so the share read and write permissions are correct.
362301
363commit bdde701699212ca7fb118f3a49a9bbc7fb06df68302commit 7b17b7265ad31f2ed3dc6d6d28c5a4caf4c12e5c
364Author: Oliver Kurth <okurth@vmware.com>303Author: Oliver Kurth <okurth@vmware.com>
365Date: Mon Sep 17 16:41:18 2018 -0700304Date: Wed Jul 3 14:26:55 2019 -0700
366305
367 Hgfs FUSE Client: fix missing pthread_mutex_unlock call306 Common header file change not applicable to open-vm-tools.
368
369 Fix missing pthread_mutex_unlock call in HgfsSetAttrCache when
370 updating the cached attributes on a file and a memory allocation
371 fails.
372307
373commit 01376aca4d4bee5efed9b4b2597d141722a7feb5308commit 59d4eda2fc89e43ac092d82866c42c9692ebca68
374Author: Oliver Kurth <okurth@vmware.com>309Author: Oliver Kurth <okurth@vmware.com>
375Date: Mon Sep 17 16:41:18 2018 -0700310Date: Wed Jul 3 14:26:54 2019 -0700
376311
377 Bump up the SYSIMAGE_VERSION for VMware Tools 10.3.5312 Common header file change not applicable to open-vm-tools.
378313
379commit 7fc13e2b58dc91627d4ff78fd532b77898adf2d2314commit 8fe237da4894488e9cb0fccdec1f0d8180998a24
380Author: Oliver Kurth <okurth@vmware.com>315Author: Oliver Kurth <okurth@vmware.com>
381Date: Mon Sep 17 16:41:18 2018 -0700316Date: Wed Jul 3 14:26:54 2019 -0700
382317
383 Update the copyright year for OVT bundled files modified since 10.3.2318 Common header file change not directly applicable to open-vm-tools.
384319
385commit c7a186e204cdff46b5e02bcb5208ef8979eaf261320commit e266c0bb1879792f24b29d38af9f9f833475f228
386Author: Oliver Kurth <okurth@vmware.com>321Author: Oliver Kurth <okurth@vmware.com>
387Date: Mon Sep 17 16:41:18 2018 -0700322Date: Wed Jul 3 14:26:54 2019 -0700
388323
389 Handle Linux kernel /proc FS uint32 type stat overflow when calculating324 Changes to common source files not directly applicable to open-vm-tools.
390 tools rate stats.
391 325
392 On both 32-bit and 64-bit Linux, tools always parses Linux kernel /proc326 Reduce malloc/free overheads in the VMX for HGFS over VMCI
393 FS stats as uint64 values. For rate stats, current - previous can handle
394 uint64 type stat overflow, but not uint32 type.
395327
396commit 064d0a3458991f0c34a397664b6b5cd8cc00e5b3328commit 9c30be3448c743e51718480543142bf833ea553a
397Author: Oliver Kurth <okurth@vmware.com>329Author: Oliver Kurth <okurth@vmware.com>
398Date: Mon Sep 17 16:41:18 2018 -0700330Date: Mon Jun 17 11:41:38 2019 -0700
399331
400 nicinfo: skip loopback devices332 copyPasteCompatX11.c code generating unnecessary Coverity warning
401 333
402 When libdnet isn't used, loopback devices were reported. This change334 This patch aims to fix an issue found by Coverity Scan.
403 skips these interfaces. Also skip interfaces that are down.
404 335
405 The interface was visible with vim-cmd, but not in the VC or336 This issue is a False Positive, the outBuf is only freed in specific
406 ESX UI. It did not contain any IP addresses.337 scenario, so there is no 'BAD FREE'. But it's better to reconstruct the
338 related code to clear the SCA error.
407339
408commit 8979f11f78ef7fdbb51afa298896e06b4d874e5b340commit a72b4c2513b8faf4e5b08b085583a43b1b6149a1
409Author: Oliver Kurth <okurth@vmware.com>341Author: Oliver Kurth <okurth@vmware.com>
410Date: Mon Sep 17 16:41:18 2018 -0700342Date: Mon Jun 17 11:41:38 2019 -0700
411343
412 Allow only a single instance of vmusr when multiple users are logged into a VM344 Common header file change not applicable to open-vm-tools.
413 345
414 When a vmusr process gets the "channel conflict" error while attempting346commit 680c9d4a412a099efde6382a0a4e5f300bc4fc4e
415 to open the toolbox-dnd channel, a channel reset is triggered. That347Author: Oliver Kurth <okurth@vmware.com>
416 reset results in the channel being restarted and a subsequent conflict348Date: Mon Jun 17 11:41:38 2019 -0700
417 and reset occurs - every second until the channel becomes available.349
418 350 linuxDeployment.c: Suppress the telinit error if the first telinit commands
419 For *nix guests:351 has made VM reboot.
420 The fix is making use of the repetitive channel resets where the only
421 RpcIn message received is a "reset" to catch this channel "permanently"
422 unavailable state. If other RpcIn messages are received, a channel
423 is considered to be working and the cumulative error count is cleared..
424
425 lib/rpcin/rpcin.c:
426 - struct RpcIn: Added error status boolean and callback function to
427 notify the dependent layer that a channel error has been
428 resolved.
429 - RpcInLoop(): If a non "reset" message is received, clear any channel
430 error status. This will also notify the dependent layer
431 that the channel is functioning.
432 - RpcIn_start(): Added additional argument for new callback; NULL if
433 not needed.
434
435 lib/rpcChannel/rpcChannel.c:
436 - struct rpcChannelInt:
437 - Renamed "rpcErrorCount" to "rpcResetErrorCount" since it is actually
438 a count of the consecutive channel reset failures and not a count
439 of RpcChannel errors.
440 - Added counter "rpcFailureCount" for the cumulative channel errors.
441 - Added "rpcFailureCb" for optional callback to notify the app of a
442 "permanent" channel failure.
443 - New function RpcChannelClearError() for RpcIn to notify when the
444 channel is working; to clear the rpcFailureCount .
445 - RpcChannel_Setup() - added two arguments for (1) an optional function
446 to be called when there is a channel failure
447 and (2) a failure count threshold.
448 These optional values are stored in the
449 RpcChannel structure being created.
450 - RpcChannelError(): Added logic to notify the calling app if the error
451 threshold has been reached and notify the app if a
452 callback was provided. A zero threshold signifies
453 the single vmusr limit should not be enforced.
454 (fix disable switch).
455
456 services/vmtoolsd/mainLoop.c:
457 - New function ToolsCore_GetVmusrLimit() to retrieve the channel error
458 threshold default or over-ride from tools.conf.
459 352
460 services/vmtoolsd/toolsRpc.c:353 The code executes '/sbin/telinit 6' repeatedly to reboot VM. VM will be
461 - Added ToolsCoreAppChannelFail(): Callback for "permanent" channel354 rebooting if the telinit command executed successfully(exitcode==0).
462 connection failure. A warning is logged based on whether another355 Observed the repeated telinit command might get error(exitcode==1) on some
463 "vmtoolsd -n vmusr" is running or not and the process is terminated.356 GOSes, ex: Ubuntu18.04, RHEL7.4/7.5 and Fedora 29.
464 On Mac OS, the process is terminated with exit(1) as an indication357 Observed no such error on older GOSes, ex: Ubuntu14.04, RHEL6.6
465 to launchd that the vmusr process should not automatically be
466 restarted.
467 358
468 The current implementation uses the error callback only for the vmusr359 The error telinit log is confusing, actually it does NOT mean customization
469 server on Linux (*nix).360 failed.
470 The default channel error limit is 5 (approx. 5 second), but is user
471 configurable in tools.conf.
472 361
473 [vmusr]362 This change does NOT log telinit error, and returns deployPkg status to
474 maxChannelAttempts = n # where allowed n = 0, 3-15363 make sure the log is consistent with customization result when the first
364 'telinit 6' succeeded but one of the following 'telinit 6' command failed.
475 365
476 When "maxChannelAttempts = 0" is used, the restriction to a single366 The following actions are unchanged with or without this change:
477 running vmusr process is not enforced. The existing behavior is367 1. log telinit error, stop loop and exit 127 if the first 'telinit 6' fails.
478 restored with all the accompanying VMX log spew. This is essentially368 2. repeatedly execute 'telinit 6' if previous one executed successfully
479 a user configurable feature disablement switch.369 (exitcode==0).
480370
481commit 0c34a86b232a9904941f825ce8b16320cadaace1371commit 37d8b16e2cc1a21919cb6974c2a87071a345e232
482Author: Oliver Kurth <okurth@vmware.com>372Author: Oliver Kurth <okurth@vmware.com>
483Date: Mon Sep 17 16:41:17 2018 -0700373Date: Mon Jun 17 11:41:37 2019 -0700
484374
485 Changes to common header files not directly applicable to open-vm-tools375 Common header file change not applicable to open-vm-tools.
486 376
487 VGAuth Windows: fix file properties product version and file version377commit 8c87c985179a7a152c9a36aa83edd2b02fc7894d
488 378Author: Oliver Kurth <okurth@vmware.com>
489 Product name of the VGAuth binaries are set to VMware Workstation and379Date: Mon Jun 17 11:41:37 2019 -0700
490 the Product version set to experimental (e.x.p).380
491 381 Common header file change not applicable to open-vm-tools.
492 Experimental version has the e.x.p build number in the Product Version382
493 field of each of the shipped binaries. Now that we are WHQL signing a DLL too383commit 9e1d3be7c075e8ca4c7ff07b8dadeab8a14953b3
494 for security it does make sense for the feature to use an official version.384Author: Oliver Kurth <okurth@vmware.com>
385Date: Mon Jun 17 11:41:37 2019 -0700
386
387 HgfsServer: Fix coverity issue - uninitialized variable "requestId"
495 388
496 This changes the Product name and version fields from389 Fix coverity uninitialized variable "requestId" by zeroing it
497 Product name -> VMware Workstation390 in HgfsServerGetRequest before passing to the request packet
498 Product version -> e.x.p build-4013326391 HgfsUnpackPacketParams extraction function which will use it
392 in a log message.
499 393
500 to394 Also moved an assert useful for testing protocol changes which was
501 Product name -> VMware Guest Authentication395 incorrect in its placement.
502 Product version -> 1.0.0 build-4013326
503396
504commit 5f5a7f4a0984ee35ce79d736426a5335c91da332397commit d2213fb32a1357305e72cbd6856f5e5ea9e151da
505Author: Oliver Kurth <okurth@vmware.com>398Author: Oliver Kurth <okurth@vmware.com>
506Date: Fri Sep 7 15:53:28 2018 -0700399Date: Mon Jun 17 11:41:37 2019 -0700
507400
508 Remove vmxnet and vmxnet3 drivers from FreeBSD builds and open-vm-tools401 Changes to common header files not applicable to open-vm-tools.
509
510 The vmxnet (version 1) network driver is not supported by any currently
511 supported VMware virtualization platform. Removing the FreeBSD
512 specific vmxnet source and deleting the vmxnet.ko driver build from
513 the tools and the open-vm-tools builds.
514 402
515 FreeBSD has their own vmxnet3 network driver based on community source403 Remove checks for GCC 4.1 in xsave, xrstor, etc. instructions
516 and has never made use of the vmxnet3 source code or drivers from
517 VMware. Removing the unneeded FreeBSD vmxnet3 source and builds
518404
519commit 1a413064fee53ac3e334e96c546886e60724d07a405commit 83dbe8ed5bf6f9e770e22c670c5617bc93e48e55
520Author: Oliver Kurth <okurth@vmware.com>406Author: Oliver Kurth <okurth@vmware.com>
521Date: Fri Sep 7 15:53:27 2018 -0700407Date: Mon Jun 17 11:41:37 2019 -0700
522408
523 Update SSL configuration with more secure settings.409 Determine Linux OS disk devices associated with mounted filesystems.
524 410
525 Due to SSL issues in the past, The preference is to have default411 For each filesystem for which disk guestInfo is currently collected,
526 settings to be more secure than compatible. This change mainly412 determine the virtual hardware device being used. This is currently
527 inherits the default settings from ssl.c.413 represented as <cntrl class><cntrl #>:<device #>, eg. scsi0:0,
414 scsi1:0, ide0:0 or sata1:4 and matches the virtual device label seen
415 in VMX.
416
417 A Linux logical volume based filesystem can reside on multiple disks.
418 In order to handle LVMs, the disk devices for each filesystem are
419 maintained as a variable array of disk device names.
420 For Linux guests, disk device names are passed as a json array.
528421
529commit 450aca9f244b5e56bcef130df1a06137fd1f07e0422commit 9bfd01b26e7d22aa847d6282e9b814b05a41e80e
530Author: Oliver Kurth <okurth@vmware.com>423Author: Oliver Kurth <okurth@vmware.com>
531Date: Fri Sep 7 15:53:27 2018 -0700424Date: Mon Jun 17 11:41:37 2019 -0700
532425
533 Add virbr* interfaces on RHEL to the default exclude-nics.426 Common header file change not applicable to open-vm-tools.
534427
535commit 5a6e8bc0ef8af2eedbbc4dc1973cb7fe18afa939428commit f456a5938662175b914ffcb53c6284835476268f
536Author: Oliver Kurth <okurth@vmware.com>429Author: Oliver Kurth <okurth@vmware.com>
537Date: Fri Sep 7 15:53:27 2018 -0700430Date: Mon Jun 17 11:41:37 2019 -0700
538431
539 Fix a gcc-8 compiler warning in lib/misc/vthreadBase.c432 Fix 'Using uninitialized value' issue reported by Coverity.
540 433
541 gcc-8 generates a stringop-truncation warning when it's possible434 * In a error code path, 'exitCode' variable is used without
542 for strncpy to exclude the trailing nul. The code was fine, we never435 any initialization. This issue was reported by the Coverity.
543 touch the last byte in the buffer and it's a static, but explicitly436 Fixed it by initializing the 'exitCode' to -1.
544 set a nul at the end of the buffer so gcc sees it.
545 437
546 This is needed for open-vm-tools to build on Suse Tumbleweed.438 * While fixing this, moved the variables to the if block where
439 they are acutally used.
547440
548commit 5200ba3a770463e5c6a9e9d7e7a6a949857332ec441commit 2b3de798522314545b00297f1ece86b223dbeb6f
549Author: Oliver Kurth <okurth@vmware.com>442Author: Oliver Kurth <okurth@vmware.com>
550Date: Fri Sep 7 15:53:27 2018 -0700443Date: Mon Jun 17 11:41:36 2019 -0700
551444
552 Return proper vix error code when guest op VIX_COMMAND_DELETE_GUEST_DIRECTORY_EX fails.445 Common header file change not applicable to open-vm-tools.
553446
554commit 8ffda7dbae4b916b28e3f903554bc37db1d5f974447commit 7cf4c83d4a0b580209184bb4d5ac6c26cd5734f4
555Author: Oliver Kurth <okurth@vmware.com>448Author: Oliver Kurth <okurth@vmware.com>
556Date: Fri Sep 7 15:53:27 2018 -0700449Date: Mon Jun 17 11:41:36 2019 -0700
557450
558 Make Tools logfiles readable only by owner and root451 Fix leak in error path reported by Coverity.
559452
560commit b0e2fab2787fbc511d240c4ce0f52a74b55152fe453commit 1b32002d84c1dbb6dbe34586c04b84d26224c5ee
561Author: Oliver Kurth <okurth@vmware.com>454Author: Oliver Kurth <okurth@vmware.com>
562Date: Fri Sep 7 15:53:27 2018 -0700455Date: Mon Jun 17 11:41:36 2019 -0700
563456
564 Reduce quiesced snapshot warning messages when running on older hosts.457 Common source file change not directly applicable to open-vm-tools.
565
566 vSphere 6.7 added a new interface on the host side that allows tools
567 to send a "generic" backup manifest during a quiesced snapshot on
568 Linux guests. VMTools 10.2.0 or later will try to send the manifest
569 file and if the host is unable to field it, then VMTools logs this
570 information and continues with the quiesced snapshot in the older
571 fashion. This change reduces the logging that is done in this case.
572458
573commit a4b4c338f1202d161e8cad2eb7cf78d44f2fd302459commit 5260daab25ee9afdd5267531516b45f5006d57d1
574Author: Oliver Kurth <okurth@vmware.com>460Author: Oliver Kurth <okurth@vmware.com>
575Date: Fri Sep 7 15:53:27 2018 -0700461Date: Mon Jun 17 11:41:36 2019 -0700
576462
577 Common source file change not directly applicable to open-vm-tools463 Improvements for ProcMgr library.
578 464
579 Verify existence of the returned path, retry the guest OP465 * This changeset fixes various issues related to ProcMgr library.
580 CreateTemporaryFileInGuest/CreateTemporaryDirectoryInGuest using system466
581 temp folder if the path disappears.467 == Retrieve the absolute path of the image for each process ==
468 * When listing down the processes, it is useful to retrieve the
469 absolute path of the process binary.
470
471 === For Linux ===:
472 * In /proc filesystem, /proc/{PID}/exe is a symlink to the binary
473 and we can make use of it to figure out the absolute path.
474
475 * If /proc/{PID}/exe is not a valid symlink, then the 'cmdline'
476 is parsed and aboslute path is calculated accordingly.
477
478 * Note: This changeset tries its best to figure out the absolute path.
479 If it can't, then the attribute is set to NULL.
480
481 == Misc issues fixed. ==
482 === Linux ===
483 * Fixed a memory leak with 'procCmdName' while looping through the
484 /proc/ directory entries.
485
486 * Fixed another memory leak with cmdLineTemp and cmdStatTemp variables
487 while listing down the processes in linux guests.
488
489 * In few cases, /proc/{PID}/cmdline file contains multiple NUL
490 characters at the end. In that case, the existing code converts them
491 into 'whitespaces'. Fixed the code to chop of all the trailing
492 whitespaces in the command line.
582493
583commit b6c450d123141a752bd4805263b7d476f5b1f26b494commit ffdf5a69fa3654dc3a16bf9951171290f48561b8
584Author: Oliver Kurth <okurth@vmware.com>495Author: Oliver Kurth <okurth@vmware.com>
585Date: Fri Sep 7 15:53:27 2018 -0700496Date: Mon Jun 17 11:41:35 2019 -0700
586497
587 Fix coverity complaint; not a real bug498 Skip loading/unloading user profile for VMXI_HGFS_SEND_PACKET_COMMAND.
499
500 This command is used repeatedly to transfer file to/from the guest.
588501
589commit 23bd37544bb9ae4069002d73cb1c1b40e221d36a502commit e858e40d2beb08880e62ccac3f9dcf3661f3e093
590Author: Oliver Kurth <okurth@vmware.com>503Author: Oliver Kurth <okurth@vmware.com>
591Date: Fri Sep 7 15:53:27 2018 -0700504Date: Mon Jun 17 11:41:35 2019 -0700
592505
593 Common source file change not directly applicable to open-vm-tools.506 Common header file change not applicable to open-vm-tools.
594507
595commit c2dd430ea5c8c9309700d25548513469dae68c9b508commit 653248aaff38309a1660f84a347b7eff70e64701
596Author: Oliver Kurth <okurth@vmware.com>509Author: Oliver Kurth <okurth@vmware.com>
597Date: Fri Sep 7 15:53:26 2018 -0700510Date: Mon Jun 17 11:41:35 2019 -0700
598511
599 Disable hgfsServer plugin when not running in a VMware VM.512 Common header file change not applicable to open-vm-tools.
600
601 VmCheck_GetVersion() accesses Backdoor in an unsafe manner
602 which is not expected to work on non-VMware environments
603 including physical machines. So, we need to make sure that
604 VmCheck_GetVersion() is called only when we are running in
605 a VMware VM.
606513
607commit 31a60ab3529a8dad8d602a524d194013d90abeec514commit 2ca144aceda2bae479f3b67eb0d60e4ef7e439dc
608Author: Oliver Kurth <okurth@vmware.com>515Author: Oliver Kurth <okurth@vmware.com>
609Date: Fri Sep 7 15:53:26 2018 -0700516Date: Mon Jun 17 11:41:35 2019 -0700
610517
611 Expose more guest stats for vROPS to report the exact physical memory518 Common header file change not applicable to open-vm-tools.
612 stats as the guest OS UI does.
613
614 Windows:
615 guest.mem.modifiedPages (Win32_PerfRawData_PerfOS_Memory#ModifiedPageListBytes)
616 guest.mem.standby.core (Win32_PerfRawData_PerfOS_Memory#StandbyCacheCoreBytes)
617 guest.mem.standby.normal (Win32_PerfRawData_PerfOS_Memory#StandbyCacheNormalPriorityBytes)
618 guest.mem.standby.reserve (Win32_PerfRawData_PerfOS_Memory#StandbyCacheReserveBytes)
619
620 Linux:
621 guest.mem.total (/proc/meminfo#MemTotal)
622 guest.mem.buffers (/proc/meminfo#Buffers)
623 guest.mem.cached (/proc/meminfo#Cached)
624 guest.mem.slabReclaim (/proc/meminfo#SReclaimable)
625 guest.mem.available (/proc/meminfo#MemAvailable since Linux 3.14, emulated by VMTools for kernels 2.6.27+)
626519
627commit 0b01aefe3ee960c6035863bcf4fd7e2ff654b99b520commit 3583ad84072c618064dfea742faa763b5f8207f0
628Author: Oliver Kurth <okurth@vmware.com>521Author: Oliver Kurth <okurth@vmware.com>
629Date: Fri Sep 7 15:53:26 2018 -0700522Date: Mon Jun 17 11:41:35 2019 -0700
630523
631 Update the tools version to 10.3.5524 Common header file change not applicable to open-vm-tools.
632 525
633 Set the tools version in vm_tools_version.h to be526commit 4e06bc447106be090fefdb6ea057482152390d73
634 TOOLS_VERSION_JACKHAMMER_UPDATE1 = 10.3.5.527Author: Oliver Kurth <okurth@vmware.com>
528Date: Mon Jun 17 11:41:33 2019 -0700
529
530 Common header file change not applicable to open-vm-tools.
635531
636commit 2147df6aabe639fc5ff423ed791a8e7f02bf8d0a532commit be8b98cda2d3149966b73d91cc76e77bf19d8228
637Author: Oliver Kurth <okurth@vmware.com>533Author: Oliver Kurth <okurth@vmware.com>
638Date: Fri Jul 13 11:54:23 2018 -0700534Date: Mon Jun 3 13:39:45 2019 -0700
535
536 Common source file change not applicable to open-vm-tools.
639537
640 prepare for 10.3.0 release538commit 61c51b4e4ac091f066e5e0efa22cc39d00b05d6d
641commit a30d7aaa4d10fbce4b7d262487fffaf1dc32d949
642Author: Oliver Kurth <okurth@vmware.com>539Author: Oliver Kurth <okurth@vmware.com>
643Date: Fri Jul 6 14:31:55 2018 -0700540Date: Mon Jun 3 13:39:45 2019 -0700
644541
645 Common source file change, not directly applicable to open-vm-tools.542 Fix memory leak in SNEBuildHash function.
646 543
647 Enforce monotonic behavior for the value returned by times() on Mac.544 In a specific code path, if a key already exists in the hashtable,
545 the memory allocated for 'value' variable is not being freed. This
546 leads to a memory leak. Fixed.
648547
649commit 12e5559e4dcf3968dd45131077b68364578f3bef548commit 0d5e8c618131e3899f3c30c91722e1df4e1162e9
650Author: Oliver Kurth <okurth@vmware.com>549Author: Oliver Kurth <okurth@vmware.com>
651Date: Fri Jul 6 14:31:55 2018 -0700550Date: Mon Jun 3 13:39:44 2019 -0700
652551
653 Update the Tools-10.3.0 OSL.552 Common header file change not applicable to open-vm-tools.
553
554commit f37292f0a8524783888d55f57fa30bb828e2408b
555Author: Oliver Kurth <okurth@vmware.com>
556Date: Mon Jun 3 13:39:44 2019 -0700
557
558 Crash during File_WalkDirectoryNext
654 559
655 Update the Tools-10.3.0 open source license files.560 In the rewrite of File_WalkDirectoryNext, a bug was introduced in the
561 invalid Unicode path. Invalid Unicode occurs very rarely... and the
562 bug finally turned up. Fix this... the bug is rather obvious.
656563
657commit c80bb3fc7960bc78a6d39c89b6952218a401b0cf564commit 1749604dc3481d0cc670e97945b915821c1039d3
658Author: Oliver Kurth <okurth@vmware.com>565Author: Oliver Kurth <okurth@vmware.com>
659Date: Fri Jul 6 14:31:55 2018 -0700566Date: Mon Jun 3 13:39:44 2019 -0700
660567
661 [tools-plugin] Potential solution for reported desktopEvent crash568 Fix asianux identification.
662 569
663 On several distros like RHEL, CentOS and Fedora, plugin desktopEvents.so570 Add asianux to distroArray and change how asianux releases 7 and 8
664 crashes have been reported. However, neither development or QE can571 are identified.
665 reproduce this issue in local environments.
666 572
667 The XFetchName document states that it may generate BadWindow error. That573 This came in as a pull request on github for open-vm-tools:
668 means that the value for a Window argument does not name a defined Window.574 https://github.com/vmware/open-vm-tools/pull/325 . Apparently
669 X FAQ also suggests handling badwindow error after finding it. Since575 the OS identification in /etc/asianux-release changed with Asianux
670 the window does not exist when XFetchName is run on it, the name is not576 7, and as a result tools does not identify it correctly.
671 needed. Suppress this error to avoid a crash.577
578commit 19969734d2a64e52cccf8f04669b55ad13f9c61c
579Author: Oliver Kurth <okurth@vmware.com>
580Date: Mon Jun 3 13:39:44 2019 -0700
581
582 Fallback to /proc/mounts.
672 583
673 After grabbing the X server, use XSetErrorHandler to temporarily define584 Use /proc/mounts on systems where /etc/mtab may not be there.
674 a local error handler to intercept and cleanly handle any BadWindow585 This change is targeted for guestInfo reporting at the moment.
675 errors. XSetErrorHandler returns the current error handler, so it is
676 straightforward to reinstate GDK's original handler.
677586
678commit 6172812c021469704c51817693c6c8f6bf226509587commit f78a6801a8ec0f549fc3aa3817215f91cf6607af
679Author: Oliver Kurth <okurth@vmware.com>588Author: Oliver Kurth <okurth@vmware.com>
680Date: Fri Jul 6 14:31:55 2018 -0700589Date: Mon Jun 3 13:39:44 2019 -0700
681590
682 Remove the new guest metrics feature switch, permanently enabling the591 Common source file change not applicable to open-vm-tools.
683 collection of new guest metrics for vROps..
684592
685commit 6e6285ec690a13ff8ba894ee463a5aa0fd034269593commit e3f8ffec4a1de47cb62e4d8b2ba175a03da13246
686Author: Oliver Kurth <okurth@vmware.com>594Author: Oliver Kurth <okurth@vmware.com>
687Date: Tue Jun 19 11:07:46 2018 -0700595Date: Mon Jun 3 13:39:44 2019 -0700
688596
689 Previous change to configure.ac and vmtools.m4 caused a regression597 Common source file change not directly applicable to open-vm-tools.
690
691 Backing out of 10.3.0.
692598
693commit 699cda01fab8b1ad8a1e912d650aa92f7ffdf0e6599commit 70596395cf892d07321ddd9ee8f947c06973e565
694Author: Oliver Kurth <okurth@vmware.com>600Author: Oliver Kurth <okurth@vmware.com>
695Date: Tue Jun 19 11:07:46 2018 -0700601Date: Mon Jun 3 13:39:44 2019 -0700
696602
697 [OVT] Update copyright year to 2018 for few files.603 Common header file change not applicable to open-vm-tools.
698
699 Updated the copyright year to 2018 for few files changed in the last
700 few days.
701604
702commit cecbaf6b16f5fd1ecbfe4419310352353b047ba2605commit a652f6e7c2c14310e2f6f030660b73e48aeeba80
703Author: Oliver Kurth <okurth@vmware.com>606Author: Oliver Kurth <okurth@vmware.com>
704Date: Tue Jun 19 11:07:46 2018 -0700607Date: Mon Jun 3 13:39:44 2019 -0700
705608
706 open-vm-tools: use AC_CHECK_TOOL for pkg-config609 Common source file change not directly applicable to open-vm-tools.
610
611commit c209a5619fa74f6b76171420c57fd65303331a0f
612Author: Oliver Kurth <okurth@vmware.com>
613Date: Mon Jun 3 13:39:44 2019 -0700
614
615 Update to common source code; does not affect open-vm-tools.
707 616
708 AC_CHECK_TOOL honors the --host setting to configure, and searches617 Allow an asyncWebSocket to connect through an existing socket descriptor
709 for tools with the cross compile prefix thus allowing for cross
710 compile specific tools.
711 618
712 Fixes issue #26 in github.619 Because Windows does not allow unprivileged processes to specify
620 DSCP (formerly ToS) values on TCP traffic, in order to support
621 DSCP for Blast WebSockets we must obtain a preconfigured socket
622 descriptor from a privileged process and then build the WebSocket
623 connection over that socket.
624
625 This changeset extends the asyncWebSocket API by adding a Connect
626 function that can accept and use an existing socket descriptor in
627 addition to the usual collection of WebSocket Connect parameters.
628
629 Because the asyncWebSocket is built over an asyncTCPSocket, this
630 change ripples down into the asyncTCPSocket API which also gets a
631 new Connect variant with a socket descriptor parameter.
632
633 To avoid duplicating existing logic, the old Connect variants
634 are modified to do their work by invoking the new API with
635 a distinguished socket descriptor value of -1. This value
636 indicates that no existing socket descriptor is provided and
637 that a new socket should be created and used for the connection.
638
639 In this changeset, passing in an existing socket is supported
640 only on the Windows platform. The feature is not required on
641 other platforms, where unprivileged processes are permitted to
642 define DSCP values for their connections. Attempting to create
643 a connection over an existing socket on other platforms will
644 result in a Connect failure.
713645
714commit f2c8d02161569c96ac452f9d1063756d133562ba646commit 20e8a3d4213019202241d766ba3c7c660c4b74c2
715Author: Oliver Kurth <okurth@vmware.com>647Author: Oliver Kurth <okurth@vmware.com>
716Date: Tue Jun 19 11:07:45 2018 -0700648Date: Mon Jun 3 13:39:44 2019 -0700
717649
718 open-vm-tools: build dndcp with thread libs650 Round out Log functions to all levels
719 651
720 Recent changes in the dndcp plugin made it necessary to make sure that652 Logs would be measurably more useful for debugging if the available
721 it links against pthread libs.653 levels were used correctly and consistently. As a step towards
654 encouraging such use, define Log_Warning() and Log_Info() as synonyms
655 for Warning() and Log() (which, for historical reasons, are not
656 declared in log.h). Also remove all the conflicting private definitions.
722657
723commit 99df5712ba7b8910c3db138c64aab6957f31c914658commit e45c4e3da624187d83f25681cf25b67ae059b6ed
724Author: Oliver Kurth <okurth@vmware.com>659Author: Oliver Kurth <okurth@vmware.com>
725Date: Tue Jun 19 11:07:45 2018 -0700660Date: Mon Jun 3 13:39:44 2019 -0700
726661
727 Clipboard content on the host gets loaded to tmp on Linux guest with a right click on Guest662 Common header file change not applicable to open-vm-tools.
728
729 Root Cause:
730 Dndcp plugin creates a sub thread to monitor if there is other application
731 access the specific file. The root cause for this bug is the main thread
732 doesn't update its field before wakeup the sub thread, this cause the sub
733 thread get a wrong value.
734
735 Solution:
736 Main thread should update the field before wakeup the sub thread.
737663
738commit 99af79200f91c246580197b5698995fba4dc47af664commit 94ffa684475ea998347b4c6e25626d099eb8315c
739Author: Oliver Kurth <okurth@vmware.com>665Author: Oliver Kurth <okurth@vmware.com>
740Date: Tue Jun 19 11:07:45 2018 -0700666Date: Mon Jun 3 13:39:44 2019 -0700
741667
742 open-vm-tools: build for FreeBSD fails in fakeMouseWayland668 Linux DeployPkg configurable timeout.
743
744 Root Cause:
745 In the file fakeMouseWayland.cpp, several Linux related header files
746 are included:
747 <linux/input.h>
748 <linux/ioctl.h>
749 <linux/uinput.h>
750
751 These header files do not exist for FreeBSD and Solaris.
752 669
753 Solution:670 Update to descriptive comments for function DeployPkg_SetProcessTimeout().
754 Lib fakeMouse is not needed by FreeBSD and Solaris, so update the makefile
755 to build the fakemouse related code only on Linux.
756671
757commit 104cab14e08b93a2525992e09f0d13ff26d52d9d672commit 4bd043870ec94332aa8b3794449a2144847cad33
758Author: Oliver Kurth <okurth@vmware.com>673Author: Oliver Kurth <okurth@vmware.com>
759Date: Tue Jun 19 11:07:45 2018 -0700674Date: Mon Jun 3 13:39:44 2019 -0700
760675
761 Use "/var/run" or "/run" instead of "/tmp" in Linux guest for imc package copy676 Common header file change not applicable to open-vm-tools.
762
763 1. check if /var/run is a directory in VM
764 2. if Yes, use /var/run/XXXXXX
765 3. check if /run is a directory in VM
766 4. if Yes, use /run/XXXXXX
767 5. if both No, use /tmp/XXXXXX as before
768677
769commit 8f93d803066032a738b9d9a6990e32ed17b589e1678commit 46cb6aa361cc8b1d287e3b9b77bf86819b4b1fc5
770Author: Oliver Kurth <okurth@vmware.com>679Author: Oliver Kurth <okurth@vmware.com>
771Date: Tue Jun 19 11:07:45 2018 -0700680Date: Wed May 22 13:09:37 2019 -0700
772681
773 Build open-vm-tools with xmlsec1 by default.682 Fix [RH Covscan] Coverity reported memory leaks in toolboxcmd-stat.c.
774
775 Build open-vm-tools with xmlsec1 by default, rather than with
776 xml-security-c as is done currently. This requires modifications
777 to configure.ac to change the default for use_xmlsec1, plus
778 modifications to bora-vmsoft/install/Source/tools-pkg.make to
779 initialize flags for xmlsec1 and xml2 now needed by the OVT build
780 that is done during tools builds.
781
782 Another change that surfaced during this was that the symbol that
783 configure checks for the xmlsec library was wrong. It should be
784 xmlSecCheckVersionExt rather than xmlSecCheckVersion. The latter
785 is a header-defined macro but not a library symbol.
786683
787commit 7313fdc5b2b14ac83340b2e59752b934494c2ae9684commit d0f0af3e62d065492b29791556c39c27eb97c751
788Author: Oliver Kurth <okurth@vmware.com>685Author: Oliver Kurth <okurth@vmware.com>
789Date: Tue Jun 19 11:07:45 2018 -0700686Date: Wed May 22 13:09:37 2019 -0700
790687
791 [Wayland Copy & Paste] Part2: Uses VMBlock notification mechanism for Copy & Paste688 Common header file change not applicable to open-vm-tools.
792
793 This patch is part of the new feature for Workstation 15: \[P0\] Wayland
794 support in Linux guest - Copy & Paste.
795
796 In the first patch, the notification mechanism is added to the VMBlock module.
797 In this patch, the notification mechanism is used,
798689
799commit c04b9987786901f544c4df04f7701b48ac8f6475690commit 873db0841a17a530cabe6b6e6e473647da685c17
800Author: Oliver Kurth <okurth@vmware.com>691Author: Oliver Kurth <okurth@vmware.com>
801Date: Tue Jun 19 11:07:45 2018 -0700692Date: Wed May 22 13:09:37 2019 -0700
802693
803 [Wayland Copy & Paste] Part1: Add notification mechanism to the VMBlock module694 Common source file change not applicable to open-vm-tools.
804
805 This patch is part of the new feature for Workstation 15: [P0] Wayland support
806 in Linux guest - Copy & Paste.
807
808 In the implementation of current VMTools, there is a restriction, in the first
809 second after grab into the guest, the CopyPasteUIX11::LocalGetFileRequestCB,
810 which is a callback from a file paste request from another guest application
811 and begins copying the files from host to guest and return the file list,
812 will return none directly.
813
814 The Wayland file explorer will request the content in the clipboard after the
815 user clicks on the file explorer, and the request will get nothing since the
816 restriction in the VMTools, so the following ‘Paste’ operation will fail.
817
818 Solution:
819 This solution is only used for the Linux guest with Wayland. The behavior
820 for Linux guest with X11 will not change.
821
822 The restriction, the CopyPasteUIX11::LocalGetFileRequestCB returns directly
823 in the first second after grab into the guest, will be removed.
824
825 And, the notification mechanism will be added into the VM block file system.
826 This mechanism is similar with the inotify module.
827
828 Take the VMBlock Fuse File System as an example, currently, the mount point contains below contents:
829
830 * /blockdir/
831
832 * /dev
833
834 /blockdir/ contains the symlinks to the contents of the target directory.
835
836 /dev is the control file for VMBlock Fuse File System.
837
838 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.
839
840 This patch only focus on the notification mechanism.
841695
842commit 6c0b2130e7ee103ece06eb674c5f5dfea66c26f1696commit 403dc83d2040d386b2c6c04756b289f277657e41
843Author: Oliver Kurth <okurth@vmware.com>697Author: Oliver Kurth <okurth@vmware.com>
844Date: Tue Jun 19 11:07:45 2018 -0700698Date: Wed May 22 13:09:37 2019 -0700
845699
846 FreeBSD: clang compiler related changes to configure.ac700 Common header file change not applicable to open-vm-tools.
847
848 On FreeBSD, the unwind.h header is available in the libunwind
849 package (/usr/ports/devel/libunwind) which may or may not be installed
850 on a system. The libunwind functions to determine the call-chain in a
851 program are defined only if " __GNU_SOURCE" is defined to enable "all"
852 GCC extensions. Avoid the unwind.h header if seen on FreeBSD.
853
854 The "clang" compiler will issue warnings if the address of a member
855 of a packed structure is taken. Since warnings are errors with -Wall,
856 add --Wno-address-of-packed-member to CFLAGS when compiling with
857 "clang".
858701
859commit bba52bfa5b29c8860f18200022db5b8b250d326b702commit af0a4979c7bcaba6a913e686609f99c1245db384
860Author: Oliver Kurth <okurth@vmware.com>703Author: Oliver Kurth <okurth@vmware.com>
861Date: Tue Jun 19 11:07:45 2018 -0700704Date: Wed May 22 13:09:37 2019 -0700
862705
863 open-vm-tools: build with tirpc706 Change to common header file not applicable to open-vm-tools.
864
865 Newer distros (Fedora, OpenSuSE Tumblweed) no longer ship rpcgen with glibc,
866 so we need to build with libtirpc (see
867 https://bugzilla.redhat.com/show_bug.cgi?id=1531540 and
868 https://bugzilla.suse.com/show_bug.cgi?id=1089181).
869 With this change, configure will check for the presence of libtirpc and
870 if found, sets flags to build with it. configure will also exit with an
871 error if rpcgen is not found.
872707
873commit 5c0b9496db96af9ea5e4b3b1321f0612a3f62d99708commit 7c1e69708bc3bbdbf9dc66b039ab40f9767b29c1
874Author: Oliver Kurth <okurth@vmware.com>709Author: Oliver Kurth <okurth@vmware.com>
875Date: Tue Jun 19 11:07:44 2018 -0700710Date: Wed May 22 13:09:37 2019 -0700
876711
877 Changes to build CAF with VS 2015; not applicable to open-vm-tools.712 Change to common header file not directly applicable to open-vm-tools.
878713
879commit 3961588fcce58090c249f4a65ad8cc109efecc5c714commit da3efa69411c5fe8897e6295927dc4b8eacaff04
880Author: Oliver Kurth <okurth@vmware.com>715Author: Oliver Kurth <okurth@vmware.com>
881Date: Tue Jun 19 11:07:44 2018 -0700716Date: Wed May 22 13:09:36 2019 -0700
882717
883 Log full version of Tools in vmware.log.718 Changes to common source files not directly applicable to open-vm-tools.
884
885 Currently, only the Tools build number is logged in vmware.log.
886 It will be very handy to have the full version logged in
887 there and avoid the need to manually lookup the build.
888719
889commit bf494fd02a77a4f34ff420c03c0c5a19e43218d3720commit 8017efa7e941561274088d27e32883f6c1965abf
890Author: Oliver Kurth <okurth@vmware.com>721Author: Oliver Kurth <okurth@vmware.com>
891Date: Tue Jun 19 11:07:44 2018 -0700722Date: Wed May 22 13:09:36 2019 -0700
892723
893 Tools 10.3.0 L10n drop2724 Pick up filesystem (fsType) name for Linux disks.
894 725
895 This is to integrate the final L10n drop for VMware Tools 10.3.726 Building upon the OS Volume Disk Mapping changes added for Windows
727 guests, pick up and propogate the filesystem type for Linux disks.
728 Move fsType related code and declaration out of the _WIN32 specific
729 source code.
730
731 Diskwiper code (for Linux) modified to pass along filesystem type
732 obtained from the MNTINFO structure from the non-Windows guest.
733 Also passing along the mount point for device-based mapping to be done
734 in the guestInfo plugin.
896735
897commit 065f09b94e09f1127901db29e73cc9b9f36df4fc736commit 82d42ead6fc14eed2bc1670352f5fb8f62413230
898Author: Oliver Kurth <okurth@vmware.com>737Author: Oliver Kurth <okurth@vmware.com>
899Date: Tue Jun 19 11:07:44 2018 -0700738Date: Wed May 22 13:09:35 2019 -0700
900739
901 Add two switches for max IPv4/6 routes to gather740 Change to common header file not applicable to open-vm-tools.
741
742commit 744fe0bec43f7e242f1353c767c613180512000d
743Author: Oliver Kurth <okurth@vmware.com>
744Date: Wed May 8 15:27:20 2019 -0700
745
746 Common header file change not applicable to open-vm-tools.
747
748commit 5b0e339cde98dce03ec5046c04ded329f61dc5ef
749Author: Oliver Kurth <okurth@vmware.com>
750Date: Wed May 8 15:27:20 2019 -0700
751
752 Fix the 'procCmdName' attribute of process information.
902 753
903 Gathering nic info in a Linux guest OS which is configured with large754 * When listing down the processes, /proc/{PID}/cmdline file is read
904 number(60000+) of ipv6 routes could result in vmtoolsd process taking a755 and parsed to figure out the command name. While doing this parsing,
905 long time and rock solid 100% CPU of a core. Though tools only exports756 the terminating NUL character is not parsed. Due to this, if any
906 at most NICINFO_MAX_ROUTES(100) routes, it tries to read all the contents757 process doesn't have any command line arguments, the 'command name' is
907 of /proc/net/ipv6_route which costs too much time because:758 retrieved as NULL.
908 1. IPv6 route table is not efficient natively compared to ipv4 due to
909 its implementation.
910 2. The g_io library can aggravate the performance.
911 759
912 On the other hand, when gathering routes, IPv4 comes first, and IPv6 second.760 Note: This issue doesn't happen if the cmdLine has any arguments.
913 And the routes reported to VMX has an overall limitation of serializing
914 (NICINFO_MAX_ROUTES). If there's more than NICINFO_MAX_ROUTES IPv4 routes
915 in system, no IPv6 will get reported.
916 761
917 Added two switches "max-ipv4-routes" and "max-ipv6-routes"762 Ex:
918 (NICINFO_MAX_ROUTES by default) in tools.conf and let SlashProcNet_GetRoute*()763 /usr/bin/vmtoolsd -> 'cmdName' is retrieved as NULL
919 only read the first max ipv4/6 routes lines of /proc/net/[ipv6_]route to avoid764 /usr/bin/vmtoolsd -n vmusr -> 'cmdName' is retrieved properly as 'vmtoolsd'
920 performance problem. Users can disable ipv4/ipv6 routes gathering765
921 separately if they want ipv6 or ipv4 only.766 * Fixed the code to include the trailing NUL character also while parsing.
922767
923commit bf86c612a8ffe1d20b98c20b76f0c34840a7a2a3768commit 7b096ae277428efd8f550c1bbb35e98bb0cdf565
924Author: Oliver Kurth <okurth@vmware.com>769Author: Oliver Kurth <okurth@vmware.com>
925Date: Tue Jun 19 11:07:44 2018 -0700770Date: Wed May 8 15:27:20 2019 -0700
926771
927 Not checking symbols when building open-vm-tools772 Hgfs fuse Client: fix max name length setting for statvfs
928 773
929 Using a hard-coded mangled name is not a good idea because C++ does not774 Detected internally with Fedora 29 and reported in
930 have any standard for name mangling. Remove these mangled names introduced775 https://github.com/vmware/open-vm-tools/issues/337,
931 in an earlier fix.776 the statvfs structure must provide a valid max name length field. Setting
777 to NAME_MAX. This allows the GUI Files application to create new folders
778 and rename existing ones correctly.
932779
933commit d36ed6e5b4784a36cb93f50e05d6a49b5d76b86e780commit 9876844113a4f6b538f131d61b61c994264f7caf
934Author: Oliver Kurth <okurth@vmware.com>781Author: Oliver Kurth <okurth@vmware.com>
935Date: Tue Jun 19 11:07:44 2018 -0700782Date: Wed May 8 15:27:19 2019 -0700
936783
937 [OVT] Update copyright year to 2018 for files modified since 10.2.5 GA784 Plumb through filesystemType
785
786 Implement the filesystemType property in the vim.vm.guestInfo.DiskInfo.
938787
939commit 8086ead225faf3a051952773c0b98b2c751b1e84788commit 79c7f28781fc38eb2e2ec691c907822dd1259bc4
940Author: Oliver Kurth <okurth@vmware.com>789Author: Oliver Kurth <okurth@vmware.com>
941Date: Tue Jun 19 11:07:44 2018 -0700790Date: Wed May 8 15:27:19 2019 -0700
942791
943 Hgfs Win Client: fix bad illegal character escaping; not applicable to open-vm-tools.792 Common header file change not applicable to open-vm-tools.
944793
945commit 7efc7b70a57cf734012a069fabab19e96f8cf16d794commit 000856aea0bd78c581888c3e3771cf79c6fdb7e9
946Author: Oliver Kurth <okurth@vmware.com>795Author: Oliver Kurth <okurth@vmware.com>
947Date: Tue Jun 19 11:07:43 2018 -0700796Date: Wed May 8 15:27:19 2019 -0700
948797
949 Add the JACKHAMMER code name to the 10.3.0 release version defines.798 Fix copy/paste on Ubuntu 19.04 guest
950 799
951 Adding the code name JACKHAMMER to the 10.3.x series version notation800 Ubuntu 19.04 chooses Nautilus 3.32 as the default file browser. From
952 for the public source release and use by future 10.3.x patches or801 3.30, Nautilus checks mime type when pasting files from the clipboard,
953 updates.802 and the target type is also changed to UTF8_STRING instead of
803 x-special/gnome-copied-files. To support Ubuntu 19.04, apply this
804 change into our guest code.
954805
955commit d71381445f6c3b986e263435006428a44be0451a806commit 7bbb1521360bd140a56d1fbf6a9663d297277901
956Author: Oliver Kurth <okurth@vmware.com>807Author: Oliver Kurth <okurth@vmware.com>
957Date: Tue Jun 19 11:07:43 2018 -0700808Date: Wed May 8 15:27:19 2019 -0700
958809
959 Hgfs Server Plugin: only handle the shared folders client in hosted products810 Add a comment in vmci_sockets.h about why a file handle is "leaked"
960 811
961 Only initialize the Shared Folders client redirector in hosted product812 Let's add a comment in vmci_sockets.h explaining why we intentionally "leak"
962 environments.813 a file handle in VMCISock_GetAFValueFd.
963 814
964 Details: Check if the tools system service started in a non-hosted product815 fd is intentionally left open when outFd is NULL. Closing it
965 and if so do not start the shared folders client redirector.816 will break applications running on Linux without a fixed AF for
966 Check if the tools user service started in a non-hosted product product and if817 vSockets. In such cases, the fd will be closed during cleanup when
967 so then skip reconnecting any Shared Folders mapped drives.818 the application exits.
968819
969commit ad7c68780a773d6d456687aff0d27f9cff808370820commit a5823224051da0318facf10e0732baa9f55334fc
970Author: Oliver Kurth <okurth@vmware.com>821Author: Oliver Kurth <okurth@vmware.com>
971Date: Thu May 10 16:47:16 2018 -0700822Date: Wed May 8 15:27:19 2019 -0700
972823
973 update version number824 Fix a trivial Coverity-reported memory leak.
825
826 If AuthLoadPAM doesn't find all the needed symbols from the pam
827 library, then dlclose the library, as is already done for
828 the same-named funtion in bora/lib/auth/authPosix.c.
974829
975commit cac0f086ffcc00da73dd7dd80fef6956962f4dd6830commit 47766e511be85410f5afc0bf8b0f05776fb66ece
976Author: Oliver Kurth <okurth@vmware.com>831Author: Oliver Kurth <okurth@vmware.com>
977Date: Thu May 10 16:38:11 2018 -0700832Date: Wed May 8 15:27:19 2019 -0700
978833
979 Remove debug display of CPUID vendor string seen in VmCheck_IsVirtualWorld834 Record Tools version 10.3.11 as Hot Patch for PR 2328829
835
836commit 801df14f0e2b32aea17771bbd33d65140ff2361c
837Author: Oliver Kurth <okurth@vmware.com>
838Date: Wed May 8 15:27:19 2019 -0700
839
840 Fix Coverity-reported double memory free errors.
980 841
981 The "Debug" message containing vendor string returned by the CPUID842 Similar double memory free errors were reported in each of two
982 instruction will appear on STDERR for stand-alone programs such843 functions, VixToolsListAuthAliases and VixToolsListMappedAliases.
983 as vmware-checkvm. This unexpected output is at best noise and may844 The fixes for each function are similar: be consistent in using
984 adversely affect existing scripts.845 tmpBuf2 (renamed tmpBuf) as the pointer to the overall buffer being
846 computed and tmpBuf (renamed nextBuf) as the "next" version of the
847 buffer. Specifically, in the computation of recordBuf following exit
848 from the for loop, use the variable formerly known as tmpBuf2 rather
849 than the one formerly known as tmpBuf.
850
851 The variables were renamed in an attempt to distinguish more clearly
852 between them and how they are used. Also, with these changes in
853 place, it's evident that there's no need to free nextBuf in the abort
854 case and as a result its scope can be limited.
985855
986commit 7ddbe3c9df400dfdf7d67d259ae3942d157dedb4856commit 2031724154177a3f5ce28d3c608709c7ad6153dc
987Author: Oliver Kurth <okurth@vmware.com>857Author: Oliver Kurth <okurth@vmware.com>
988Date: Mon Apr 30 15:42:54 2018 -0700858Date: Wed May 8 15:27:19 2019 -0700
989859
990 sync deploypkg files860 Common header file change not applicable to open-vm-tools.
991861
992commit 80a23d71a281493071668fd45b77d7f8248fad68862commit 8634350c330318eaf8f333c49f405e20b71ca813
993Author: Oliver Kurth <okurth@vmware.com>863Author: Oliver Kurth <okurth@vmware.com>
994Date: Mon Apr 30 14:04:14 2018 -0700864Date: Wed May 8 15:27:19 2019 -0700
995865
996 Changes to common header files:866 Common header file change not directly applicable to open-vm-tools.
997 - Add Amazon Linux 2 to the known guest OS list.
998 - Other change not application to open-vm-tools.
999867
1000commit 48dc7a57ff3fe5cb1441040876f74b69772c1ea5868commit 2bbd56da4314856dfc1a8fed2db5b55cd9ef8860
1001Author: Oliver Kurth <okurth@vmware.com>869Author: Oliver Kurth <okurth@vmware.com>
1002Date: Mon Apr 30 14:04:13 2018 -0700870Date: Wed May 8 15:27:18 2019 -0700
1003871
1004 [DeployPkg] Replace Log() references with g_log()872 Fixes for few leaks and improved error handling.
1005 873
1006 * Modified the code to replace a couple of Log() references with g_debug()874 Fix a memory leak detected by coverity scan. It is not critical,
1007 so that they are properly logged with 'deplogPkg' domain instead of the875 but it is real in an error case when there is no end mark. While
1008 generic 'vmsvc' domain in the tools log files.876 fixing it, also enhanced code to handle different error cases
877 properly because we would want valid content to be decoded even
878 when there are invalid marks in the log file. Invalid log marks
879 are possible when vmware.log gets rotated in the middle of guest
880 logging.
881
882 While verifying the fix using valgrind, found a couple of more
883 leaks in panic and warning stubs. Addressed those as well.
1009884
1010commit 9cb12223b4da529df043d95ab025f22c6ee00c39885commit 544cf1363c78d1d8c75e57d560b3650b5f667c64
1011Author: Oliver Kurth <okurth@vmware.com>886Author: Oliver Kurth <okurth@vmware.com>
1012Date: Mon Apr 23 17:08:18 2018 -0700887Date: Wed May 8 15:27:18 2019 -0700
1013888
1014 [oss] Upgrade GTK+ and its dependent libraries for VMtools889 Fix a trivial Coverity-reported memory leak in vgauth/cli/main.c.
1015 890
1016 GTK+ and its dependent libraries are upgraded to:891 Call Pref_Shutdown to close the PrefHandle.
1017 gtk+ 2.24.32
1018 atk 2.28.1
1019 gdk-pixbuf 2.36.11
1020 pango 1.40.13
1021 cairo 1.14.12
1022 fontconfig 2.13.0
1023 freetype 2.9
1024892
1025commit a5c03957c95ec78c92246b87cdf60a90b2eca7f7893commit 4a2c4645a363c705e66cdb81847f579d8ff30e04
1026Author: Oliver Kurth <okurth@vmware.com>894Author: Oliver Kurth <okurth@vmware.com>
1027Date: Mon Apr 23 17:08:18 2018 -0700895Date: Tue Apr 30 13:24:25 2019 -0700
1028896
1029 Common header file change not applicable to open-vm-tools.897 Add garbage collection for vix process handles.
898
899 This closely follows the model used for hgfs session cleanup.
1030900
1031commit f87d177acab33f00229234ed51722504e2f7afc7901commit ea2ee4789fd0db5451752ea98af55a3c6b47f1d2
1032Author: Oliver Kurth <okurth@vmware.com>902Author: Oliver Kurth <okurth@vmware.com>
1033Date: Mon Apr 23 17:08:18 2018 -0700903Date: Tue Apr 30 13:24:25 2019 -0700
1034904
1035 Changes to common header files not directly applicable to open-vm-tools.905 Common header file change not applicable to open-vm-tools.
1036906
1037commit ba65905dfc7e6c07d1aeea37db885284e54b02fa907commit 4ee0255f2f7a32a76095de8c02a869e78f7ec765
1038Author: Oliver Kurth <okurth@vmware.com>908Author: Oliver Kurth <okurth@vmware.com>
1039Date: Mon Apr 23 17:08:18 2018 -0700909Date: Tue Apr 30 13:24:25 2019 -0700
1040910
1041 Set perms on Tools script logs.911 Common header file change not applicable to open-vm-tools.
1042
1043 Make the network script logs secure; set log file perms to 0600.
1044912
1045commit aa59d16e0b5968efc298065ef50ece282d406265913commit 9e6e3afa5b5c3dc11c7aa79454ca4c8184c87bdf
1046Author: Oliver Kurth <okurth@vmware.com>914Author: Oliver Kurth <okurth@vmware.com>
1047Date: Mon Apr 23 17:08:18 2018 -0700915Date: Tue Apr 30 13:24:25 2019 -0700
1048916
1049 [Wayland DnD] Part2: Open the uinput device file with root permission.917 Fix a memory leak in the unicode library.
1050 918
1051 The device file /dev/uinput (or /dev/input/uinput) can only be accessed919 Ensure that allocated strings are freed before returning a failure.
1052 by root account, so the dndcp plugin may failed to open this device file
1053 if the current user is not root account.
1054
1055 A way to fix this issue is opening this device file with root account,
1056 then pass the file descriptor to the sub task which is started with the
1057 current account. An example for this solution is blockVM file system
1058 device file.
1059 920
1060 This patch is part of the new feature 'Wayland support in Linux guest'.921 The ASSERTs have never been known to fire; a warning in a obj
922 build will help with debugging. The warning should "never" happen.
1061923
1062commit b3899c91d348d23c2e6c22944b8ac1a06e4e3988924commit d1de801b4b490aeecd982f19274e46485f156f79
1063Author: Oliver Kurth <okurth@vmware.com>925Author: Oliver Kurth <okurth@vmware.com>
1064Date: Mon Apr 23 17:08:18 2018 -0700926Date: Tue Apr 30 13:24:25 2019 -0700
1065927
1066 [Wayland DnD] Part1: Add 'fakeMouse' module which is used to simulate the928 Common header file change not applicable to open-vm-tools.
1067 mouse motion under Wayland929
1068 930commit b2a6fdafed0bef27a77d549e4ffbed9a09b9f0bd
1069 For Linux guest with X11, the VMTools uses the X system APIs to simulate931Author: Oliver Kurth <okurth@vmware.com>
1070 the mouse motion, but these X11 System APIs do not work in Wayland. Need932Date: Tue Apr 30 13:24:25 2019 -0700
1071 to pick up another method to simulate the mouse motion.933
934 Common header file change not applicable to open-vm-tools.
935
936commit a63fe3472895c9394ee8c3f2d0d2a496c3ccab6f
937Author: Oliver Kurth <okurth@vmware.com>
938Date: Tue Apr 30 13:24:25 2019 -0700
939
940 Common header file change not applicable to open-vm-tools.
941
942commit 9bec96154c23462f2c6f80dd660f41bba38d4614
943Author: Oliver Kurth <okurth@vmware.com>
944Date: Tue Apr 30 13:24:25 2019 -0700
945
946 Provide a shutdown function for users of the unicode library to free memory
947 allocated by Unicode_Init().
1072 948
1073 Another way to simulate the mouse motion is using uinput module.949 Most applications using the unicode library do not free related memory
950 since they are about to terminate. A Unicode_Shutdown() function is
951 provided which will explicitly free the memory allocated by Unicode_Init().
952
953commit 5614d61a2b8353cd48095210afbcc89f66228ae7
954Author: Oliver Kurth <okurth@vmware.com>
955Date: Tue Apr 30 13:24:25 2019 -0700
956
957 Changes to common header files not applicable to open-vm-tools.
958
959commit 4ae954db584b7e3287a97f44d0eeb96d09ba2c68
960Author: Oliver Kurth <okurth@vmware.com>
961Date: Tue Apr 30 13:24:25 2019 -0700
962
963 Common header file change not directly applicable to open-vm-tools.
964
965commit 35570e72d3833b73db653c89c84223c959856467
966Author: Oliver Kurth <okurth@vmware.com>
967Date: Tue Apr 30 13:24:25 2019 -0700
968
969 Changes to common source files not directly applicable to open-vm-tools.
1074 970
1075 uinput is a kernel module that makes it possible to emulate input devices971 Added the function Random_FastStream64() to provide a 64-bit random number
1076 from userspace. By writing to /dev/uinput (or /dev/input/uinput) device,972 if needed.
1077 a process can create a virtual input device with specific capabilities.973
1078 Once this virtual device is created, the process can send events through974commit e89c751f0045f163c468c49b71db70478581c85c
1079 it, that will be delivered to userspace and in-kernel consumers.975Author: Oliver Kurth <okurth@vmware.com>
976Date: Tue Apr 30 13:24:25 2019 -0700
977
978 vm_basic_defs.h: include stddef.h
1080 979
1081 Here is the link which contains more information about the uinput module:980 The stddef.h header has existed since C89. It includes interesting
981 things like an offsetof definition, and a definition of NULL.
1082 982
1083 https://www.kernel.org/doc/html/v4.12/input/uinput.html983 Let's stop re-inventing this long-standardized header. Except
984 in vmkernel, where bogus __FreeBSD__ values break gcc's <stddef.h>.
985 (Detail: vmkernel networking likes to define __FreeBSD__ to empty
986 or 1, whereas ABI requires "FreeBSD major version".
1084 987
1085 This patch adds a new module named 'fakeMouse' which is used to simulate the mouse motion under Wayland.988 This change is deliberately minimal as touching headers included
989 everywhere is inherently fragile. Further cleanups (like removing
990 vmw_offsetof) can be done in follow-up changes.
1086 991
1087 This patch is part of the new feature 'Wayland support in Linux guest'.992 The stddef.h header is a 'freestanding' header, which means it's
993 part of the language and not a "system" header. It is thus safe
994 to include (modulo vmkernel-networking problem above).
1088995
1089commit 995befcb0d6156fb47773c96db6d478173d1bc89996commit 642d7a61db13969f9fb654ad1cc0d879bf680612
1090Author: Oliver Kurth <okurth@vmware.com>997Author: Oliver Kurth <okurth@vmware.com>
1091Date: Mon Apr 23 17:08:18 2018 -0700998Date: Tue Apr 30 13:24:25 2019 -0700
1092999
1093 Add new guest metrics to be consumed by vROps.1000 Fix Coverity reported issues in i18n.c code - VMTools & VGAuth
1094 1001
1095 Windows:1002 bora-vmsoft/apps/vmtoolsbib/i18n.c: MsgLoadCatalog()
1096 * ProcessorQueueLength1003 - Coverity reported memory leak when an error is encountered parsing a
1097 * CurrentDiskQueueLength1004 line from a message catalog.
1098 * AvgDiskQueueLength1005 - Second memory leak on error missed.
1099 1006
1100 Linux:1007 bora-vmsoft/vgauth/common/i18n.c: MsgLoadCatalog()
1101 * CPU run queue size1008 - Coverity reported some dead code.
1102 * Current disk queue size1009 - Missed reporting memory leak when error is encountered parsing a
1103 * Average disk queue size1010 line from a message catalog.
11041011
1105commit 9d6cfe650cd15095e65024fbb5d9cd6944e1cf141012commit 0f7b4b275aaf20bebf8d4739cf283fade05c3dcb
1106Author: Oliver Kurth <okurth@vmware.com>1013Author: Oliver Kurth <okurth@vmware.com>
1107Date: Mon Apr 23 17:08:17 2018 -07001014Date: Tue Apr 30 13:24:25 2019 -0700
11081015
1109 Historical: Recording version numbers assigned for 10.2.x patches.1016 Common header file change not applicable to open-vm-tools.
1017
1018commit 9e0ccaa3bf2805674fd882362427aa2d3376a3a8
1019Author: Oliver Kurth <okurth@vmware.com>
1020Date: Tue Apr 30 13:24:24 2019 -0700
1021
1022 Common header file change not applicable to open-vm-tools.
1023
1024commit 3cf1df758ba64cb6aebe81bf3a430ad536221c19
1025Author: Oliver Kurth <okurth@vmware.com>
1026Date: Tue Apr 30 13:24:24 2019 -0700
1027
1028 Toolsd uses log.text RPC only when the useLogTextRpc is set to TRUE.
1110 1029
1111 Define TOOLS_VERSION_CHAINSAW_PATCH1 as 10.2.1.1030 This allows the tools installer to start use the log.text RPC without
1112 Define TOOLS_VERSION_CHAINSAW_PATCH2 as 10.2.6.1031 worrying about that toolsd has not completed the work of scrubbing its logs
1032 for security and privacy issues.
11131033
1114commit ba6c319f18d294b36c0e989f851fbfdbc8a629b71034commit 1b755d3e619ed40d8750532f10af5a1df6de6cda
1115Author: Oliver Kurth <okurth@vmware.com>1035Author: Oliver Kurth <okurth@vmware.com>
1116Date: Mon Apr 23 17:08:17 2018 -07001036Date: Tue Apr 30 13:24:24 2019 -0700
11171037
1118 Bump up the version requirement for glib and friends to 2.34.01038 Fix memory leak in SNEBuildHash function.
1119 1039
1120 For open-vm-tools, we are bumping up the minimum version requirement1040 In a specific code path of the SNEBuildHash function, when the
1121 to 2.34.0 for glib and its friends. Modified the configure.ac1041 environment variable is of the format VMWARE_*=[0|1], the value
1122 with the proper new version checks. Also, updated the1042 is not freed. Fixed the memory leak.
1123 error message with the proper version.
11241043
1125commit 26d03ad8075913cb869b814462b7285c023672521044commit 0957e9c46476f8eab435576e7094b125e102f6ce
1126Author: Oliver Kurth <okurth@vmware.com>1045Author: Oliver Kurth <okurth@vmware.com>
1127Date: Mon Apr 23 17:08:17 2018 -07001046Date: Tue Apr 30 13:24:24 2019 -0700
11281047
1129 Common header file change not applicable to open-vm-tools.1048 Common header file change not applicable to open-vm-tools.
11301049
1131commit ce1ed002f5e05f09678e15b4021bac8155edb1eb1050commit bbefe8051a56b3cf834bf71c8f55fdfd88802b9d
1132Author: Oliver Kurth <okurth@vmware.com>1051Author: Oliver Kurth <okurth@vmware.com>
1133Date: Mon Apr 23 17:08:17 2018 -07001052Date: Mon Apr 15 11:33:00 2019 -0700
11341053
1135 Common source file changes that are not directly related to open-vm-tools.1054 Common header file change not applicable to open-vm-tools.
1136
1137 Build vmtools and vgauth for Windows with xmlsec instead of
1138 xml-security-c. It will still be possible to build with xml-security-c
1139 either by commenting out the definition of USE_XMLSEC_FOR_WINDOWS in
1140 bora-vmsoft/vgauth/make/inc/defs.mk or adding a make command line
1141 argument of USE_XMLSEC_FOR_WINDOWS=0.
11421055
1143commit d5c0bcea04aae65484ba3c2756b64acf6f6388d01056commit a0b825b2251bf9d30fb29d5deb1d269ec361428c
1144Author: Oliver Kurth <okurth@vmware.com>1057Author: Oliver Kurth <okurth@vmware.com>
1145Date: Mon Apr 23 17:08:17 2018 -07001058Date: Mon Apr 15 11:33:00 2019 -0700
11461059
1147 Update bora-vmsoft/install/Source/README1060 Common header file change not applicable to open-vm-tools.
1148
1149 The content is stale. Since the file is used internally and is
1150 not published, rather than maintain it in two places, point to
1151 the current README file and Release Notes on github.
11521061
1153commit 512d5475520ec5e0525633cd47530faaae774b5e1062commit abd87bf17c9869900dad292a458b871de90c4c7d
1154Author: Oliver Kurth <okurth@vmware.com>1063Author: Oliver Kurth <okurth@vmware.com>
1155Date: Mon Apr 23 17:08:17 2018 -07001064Date: Mon Apr 15 11:33:00 2019 -0700
11561065
1157 Common header file change not applicable to open-vm-tools.1066 Common header file change not applicable to open-vm-tools.
11581067
1159commit 982998c9a6a3ec8664f9c4c08ff9ef30f52a9ae21068commit 85bc2e71dd7a855d3c533965859c1756deecc314
1160Author: Oliver Kurth <okurth@vmware.com>1069Author: Oliver Kurth <okurth@vmware.com>
1161Date: Mon Apr 23 17:08:17 2018 -07001070Date: Mon Apr 15 11:33:00 2019 -0700
11621071
1163 Common header file change not applicable to open-vm-tools.1072 Fix minor leak in FileRotateByRenumber - Coverity scan
11641073
1165commit ab36b3227275a5beded8a5115929e2d649c6aad31074commit 82169f198925c9aa27bd04fd665eac67396adbe7
1166Author: Oliver Kurth <okurth@vmware.com>1075Author: Oliver Kurth <okurth@vmware.com>
1167Date: Mon Apr 23 17:08:17 2018 -07001076Date: Mon Apr 15 11:33:00 2019 -0700
11681077
1169 Common header file changes not applicable to open-vm-tools.1078 Fix a leak if VGAuth setup fails. Coverity issue
11701079
1171commit 0527d5c5f14f626a5129231778ec433dfff55c2a1080commit 555f28c7d07161a5bcd0a90fe46869bc6be4ba21
1172Author: Oliver Kurth <okurth@vmware.com>1081Author: Oliver Kurth <okurth@vmware.com>
1173Date: Mon Apr 23 17:08:17 2018 -07001082Date: Mon Apr 15 11:33:00 2019 -0700
1083
1084 Common source file change not applicable to open-vm-tools.
1085
1086commit b9993b990ea7dc077c6e625137802492245fb31b
1087Author: Oliver Kurth <okurth@vmware.com>
1088Date: Mon Apr 15 11:33:00 2019 -0700
11741089
1175 Common header file change not applicable to open-vm-tools.1090 Common header file change not applicable to open-vm-tools.
11761091
1177commit 571dc1fbadd962d91dcb7a44652b501de3f48e0e1092commit ca4be3d1bcb1d184eafb2c576dd7a127a95628fc
1178Author: Oliver Kurth <okurth@vmware.com>1093Author: Oliver Kurth <okurth@vmware.com>
1179Date: Mon Apr 23 17:08:16 2018 -07001094Date: Mon Apr 15 11:33:00 2019 -0700
11801095
1181 Common header file change not applicable to open-vm-tools.1096 Common header file change not applicable to open-vm-tools.
11821097
1183commit 998903d73496bf6080053f994c8410dc880db2f91098commit e6d24a37cdcd88624f66ad86f161e8576e7c6ec0
1184Author: Oliver Kurth <okurth@vmware.com>1099Author: Oliver Kurth <okurth@vmware.com>
1185Date: Mon Apr 23 17:08:16 2018 -07001100Date: Mon Apr 15 11:32:59 2019 -0700
11861101
1187 Common header file change not applicable to open-vm-tools.1102 Common header file change not applicable to open-vm-tools.
11881103
1189commit 3b814f9b4dcbf54893078a4ba187d8d0cbf23e311104commit da8c476be54bcd94c6b4f15a013dd02419b4ec29
1190Author: Oliver Kurth <okurth@vmware.com>1105Author: Oliver Kurth <okurth@vmware.com>
1191Date: Mon Apr 23 17:08:16 2018 -07001106Date: Mon Apr 15 11:32:59 2019 -0700
11921107
1193 lib/hashMap/hashMap.c:1108 Changes to common source files not directly applicable to open-vm-tools.
1194 Add new HashMap_Get() which uses a constant time memory comparison function.
1195 1109
1196 lib/misc/utilMem.c:1110 Add an error code to a debug message.
1197 Constant time memory and string comparison functions.
11981111
1199commit 5daceb4448834143d884b061f391c37aeaaad6831112commit 8eba31ddbf50a194acdd3eb30935a1fb3895bd50
1200Author: Oliver Kurth <okurth@vmware.com>1113Author: Oliver Kurth <okurth@vmware.com>
1201Date: Mon Apr 23 17:08:16 2018 -07001114Date: Mon Apr 15 11:32:59 2019 -0700
12021115
1203 Changes to common header files not applicable to open-vm-tools.1116 Common header file change not applicable to open-vm-tools.
12041117
1205commit 42d1e6b11c0b11c1b1f6f967cb5c4d7e2f3b39e01118commit b4a0d4c8137cdfbee073b456c71b731fa21e6ead
1206Author: Oliver Kurth <okurth@vmware.com>1119Author: Oliver Kurth <okurth@vmware.com>
1207Date: Mon Apr 23 17:08:16 2018 -07001120Date: Mon Apr 15 11:32:59 2019 -0700
12081121
1209 Change to common header file not applicable to open-vm-tools.1122 Common header file change not applicable to open-vm-tools.
12101123
1211commit f4b7b227119712c90be4a3583d4430a3fcc1d0931124commit e53f942615313e5d209f49d9c4da4227671c38d8
1212Author: Oliver Kurth <okurth@vmware.com>1125Author: Oliver Kurth <okurth@vmware.com>
1213Date: Mon Apr 23 17:08:16 2018 -07001126Date: Mon Apr 15 11:32:59 2019 -0700
12141127
1215 Change to common header file not applicable to open-vm-tools.1128 Common header file change not applicable to open-vm-tools.
12161129
1217commit 874b8b4801a5bba439401db8e624e3e3d1989ca71130commit c0ec4f8294ec6428ee2a7f7284b37f79f4661bf3
1218Author: Oliver Kurth <okurth@vmware.com>1131Author: Oliver Kurth <okurth@vmware.com>
1219Date: Mon Apr 23 17:08:16 2018 -07001132Date: Mon Apr 15 11:32:59 2019 -0700
12201133
1221 Common header file change not applicale to open-vm-tools.1134 Add a DynBuf_InitWithString() function to the dynamic buffer routines.
12221135
1223commit ff2616a657c32bbb5e6799f8b8cd0a470d0e52021136commit 2dc55af11451712b05a0c85a9c2ba1e5619b4841
1224Author: Oliver Kurth <okurth@vmware.com>1137Author: Oliver Kurth <okurth@vmware.com>
1225Date: Mon Apr 23 17:08:16 2018 -07001138Date: Mon Apr 15 11:32:59 2019 -0700
12261139
1227 Common header file changes not applicable to open-vm-tools.1140 Common header file change not applicable to open-vm-tools.
12281141
1229commit 5d9cc73f1c7979466d55f7897f98c0888d2fb15d1142commit f35313969af9bd2815709930f054171d7ebbcbc9
1230Author: Oliver Kurth <okurth@vmware.com>1143Author: Oliver Kurth <okurth@vmware.com>
1231Date: Mon Apr 23 17:08:15 2018 -07001144Date: Mon Apr 15 11:32:58 2019 -0700
12321145
1233 Header file change in preparation for C++11 compilation. Also updating1146 Common header file change not applicable to open-vm-tools.
1234 copyright dates.
12351147
1236commit 29fb30f6d1956ccd4ad803b1b7f0430e4ef28ceb1148commit c864f9e015a25864b952210796458e77c1f5726f
1237Author: Oliver Kurth <okurth@vmware.com>1149Author: Oliver Kurth <okurth@vmware.com>
1238Date: Mon Apr 23 17:08:15 2018 -07001150Date: Mon Apr 15 11:32:58 2019 -0700
12391151
1240 FreeBSD vmmemctl: Fold in open-vm-tools pull requests #125 and #1401152 Common header file change not directly applicable to open-vm-tools.
1241
1242 This change incorporates two open-vm-tools pull requests that provide
1243 code changes that allows the existing vmmemctl.ko driver to be compiled
1244 on FreeBSD 10, 11 or 12.
1245
1246 Pull request #125:
1247 An optional argument has been added to the sysctl_add_oid() function
1248 in FreeBSD 12.x. All releases have a SYSCTL_ADD_OID() macro that does
1249 not require the additional argument.
1250
1251 Pull request #140:
1252 Functions and macros to lock and unlock memory pages and objects have
1253 changed between the FBSD 10 & 11. The pull request provides a set C
1254 preprocessor directives to select the appropriate code based on the
1255 FreeBSD release being targeted.
1256
1257 The code change as been tidied up by using the release version checks
1258 to define LOCK and UNLOCK macros for memory pages and objects at the
1259 beginning of the source file. The code logic is easier to follow
1260 without the abundance of #if, #else and #endif statements scattered
1261 about.
1262
1263 Ed Schouten: https://github.com/vmware/open-vm-tools/pull/125
1264 Steve Wills: https://github.com/vmware/open-vm-tools/pull/140
12651153
1266commit 2a34b181de524b3f0d01cad90d3da184bde7ad991154commit 6de2df2c43c412c048f666277eaa48d8bb0c0321
1267Author: Oliver Kurth <okurth@vmware.com>1155Author: Oliver Kurth <okurth@vmware.com>
1268Date: Mon Apr 23 17:08:15 2018 -07001156Date: Wed Apr 10 14:14:57 2019 -0700
12691157
1270 Common source file changes not directly applicable to open-vm-tools.1158 Common header file change not applicable to open-vm-tools.
12711159
1272commit fab45e62a1468b86d2097a6a0784c4f259d6b0ef1160commit 306f0f7b507486795c0d726288ceb7145dcf3c00
1273Author: Oliver Kurth <okurth@vmware.com>1161Author: Oliver Kurth <okurth@vmware.com>
1274Date: Mon Apr 23 17:08:15 2018 -07001162Date: Wed Apr 10 14:14:57 2019 -0700
12751163
1276 Common header file change not applicable to open-vm-tools.1164 Common header file change no applicable to open-vm-tools.
12771165
1278commit 357e8418e5441c2c5fc75a19f7b6529d6bce74521166commit 6219e245c5e42479f4aef36ab8ee49db3c368f83
1279Author: Oliver Kurth <okurth@vmware.com>1167Author: Oliver Kurth <okurth@vmware.com>
1280Date: Mon Apr 23 17:08:15 2018 -07001168Date: Wed Apr 10 14:14:57 2019 -0700
12811169
1282 Common header file change not applicable to open-vm-tools.1170 Remove use of "-Wno-address-of-packed-member" option for OVT builds on FBSD
1171
1172 With the HGFS source code refactor to avoid taking the address of a
1173 packed structure memberuse of "-Wno-address-of-packed-member"
1174 is no longer needed to build OVT on FBSD 11.x and FBSD 12.x.
12831175
1284commit fad97e4a7c756b3b297e0fe9e68a1a4674c4fdcc1176commit 8b2bbbd8c2b647592a2f444a678fe93552fb0d22
1285Author: Oliver Kurth <okurth@vmware.com>1177Author: Oliver Kurth <okurth@vmware.com>
1286Date: Mon Apr 23 17:08:15 2018 -07001178Date: Wed Apr 10 14:14:56 2019 -0700
12871179
1288 Common header file change not applicable to open-vm-tools.1180 Add a 64 bit pseudo random number generator
1181
1182 This change adds a 64 bit pseudo random number generator to the public
1183 library by calling the existing 32 bit Random_Fast function twice.
1184 Since the period of Random_Fast is 2^64, this should be sufficient.
12891185
1290commit 357d9139342c19a98ed12f5961f415d099df32871186commit 5f9bd0c6a39a266854fad680d2251c024c309425
1291Author: Oliver Kurth <okurth@vmware.com>1187Author: Oliver Kurth <okurth@vmware.com>
1292Date: Fri Mar 23 15:05:36 2018 -07001188Date: Wed Apr 10 14:14:56 2019 -0700
12931189
1294 Common source file changes that are not applicable to open-vm-tools.1190 Remove some "always TRUE" comparisons reported by clang 6.0 on FBSD.
1191
1192 A recent refactoring of HGFS fuse code to avoid taking the address of
1193 a field in a packed structure introduced a comparision of an array
1194 address != NULL which will always evaluate to "true". Removing the
1195 unnecessary "if" statements.
12951196
1296commit 6c3261d152442fa11fc2b928490d74846f23465d1197commit 67b66d0ff13324413deac6c522bd382ee450125e
1297Author: Oliver Kurth <okurth@vmware.com>1198Author: Oliver Kurth <okurth@vmware.com>
1298Date: Fri Mar 23 15:05:36 2018 -07001199Date: Wed Apr 10 14:14:56 2019 -0700
1200
1201 Common source file change not applicable to open-vm-tools.
1202
1203commit 86bf8de08dbb28e8902411b8a9bc0e64f972f74d
1204Author: Oliver Kurth <okurth@vmware.com>
1205Date: Wed Apr 10 14:14:56 2019 -0700
12991206
1300 Common header file change not applicable to open-vm-tools.1207 Common header file change not applicable to open-vm-tools.
13011208
1302commit 3747daca8efbfe8e709687b97c874a29f183b7171209commit 3bc7907533c45544fcfb24906a0e4b7de61718e7
1303Author: Oliver Kurth <okurth@vmware.com>1210Author: Oliver Kurth <okurth@vmware.com>
1304Date: Fri Mar 23 15:05:36 2018 -07001211Date: Wed Apr 10 14:14:55 2019 -0700
13051212
1306 Backout previous change to lib/include/vm_basic_math.h.1213 Changes to common header files not applilcable to open-vm-tools.
13071214
1308commit f9414d19532a9664e6c260a8644ee09200e324291215commit 6576ad0d7b28bd1ddab2fce8a0f34695aa57a774
1309Author: Oliver Kurth <okurth@vmware.com>1216Author: Oliver Kurth <okurth@vmware.com>
1310Date: Fri Mar 23 15:05:36 2018 -07001217Date: Wed Apr 10 14:14:55 2019 -0700
13111218
1312 Common header file change: lib/include/vm_basic_math.h1219 Common source file change not applicable to open-vm-tools.
1313
1314 Define portability macros for Inf and Nan tests.
13151220
1316commit de2010a1a45a9e515b932a1a83374539661a2b391221commit 8c69b930a826aad87c692d516fd77d1a4cbed0fb
1317Author: Oliver Kurth <okurth@vmware.com>1222Author: Oliver Kurth <okurth@vmware.com>
1318Date: Fri Mar 23 15:05:35 2018 -07001223Date: Wed Apr 10 14:14:55 2019 -0700
13191224
1320 Add missing memory constraints for vm_atomic RMW (Read/Modify/Write) instructions1225 DnD Phase II] - Avoid potential memory overflow.
1321 1226
1322 There are two inseparable concepts involved when dealing with atomics:1227 In the case when dragging a format whose size is exactly the same as the
1323 1. Atomicity of the access itself1228 size threshold and plain text is provided, the plain text can't be added.
1324 2. Ordering of the access with respect to other reads&writes (from the view of1229 Current logic does not handle this case. Instead it will result in a
1325 other processors).1230 large unsigned number (0-1 = 0xffff_ffff) of bytes to be allocated to
1326 1231 store plain text which causes memory overflow.
1327 Our Read-Modify-Write functions are all meant to provide the highest level of
1328 ordering guarantee: Sequential Consistency, which means no reordering of reads
1329 or writes across the access. We properly implement that on ARM, and on
1330 x86/x64 at the hardware layer. But, on x86/x64 we needed to tell the compiler
1331 (it must flush out any pending reads/writes that are currently hiding in
1332 registers)
1333 1232
1334 Side Note: we do *not* change the pure Read and pure Write functions, only1233 Just return in the case that no more size left to add plain text or the
1335 the Read/Modify/Write ones. On both ARM and x86/x64, vm_atomic functions like1234 plain text is empty.
1336 Atomic_WriteN provide no (re)ordering guarantees today (at the hardware layer1235
1337 on ARM or at the compiler layer on x86/x64). This is because some callers1236commit 685aa3d0879aabde450ba0d6c79d256d6abaf3f5
1338 didn't need or want such guarantees - as such, Atomic_WriteN by itself is1237Author: Oliver Kurth <okurth@vmware.com>
1339 *not* sufficient to, say, release a lock. Making these remaining atomic1238Date: Wed Apr 10 14:14:55 2019 -0700
1340 weapons safe by default will require us to first1239
1341 1. add new unordered atomic equivalents of Atomic_ReadN/TestBitN and1240 Common header file change not applicable to open-vm-tools.
1342 Atomic_WriteN (in C11 terminology, acquire/release and relaxed)1241
1343 2. Scan the tree and switch appropriate callers to the new functions1242commit 71b41229ffe1f31711b35145ee1ab0bfbb763295
1243Author: Oliver Kurth <okurth@vmware.com>
1244Date: Wed Apr 10 14:14:54 2019 -0700
1245
1246 Common header file change not applicable to open-vm-tools.
1247
1248commit f2eb555cf6e9f8c779daf1dc9c2f7aff383d105a
1249Author: Oliver Kurth <okurth@vmware.com>
1250Date: Wed Apr 10 14:14:54 2019 -0700
1251
1252 Common header file change not applicable to open-vm-tools.
1253
1254commit 8046af84ee4aa1d271af4c1d2379fb3d88dba3ac
1255Author: Oliver Kurth <okurth@vmware.com>
1256Date: Wed Apr 10 14:14:54 2019 -0700
1257
1258 Common header file change not applicable to open-vm-tools.
1259
1260commit cf05c47b06af90a7bb7c5d561fb425ba2ebc0b47
1261Author: Oliver Kurth <okurth@vmware.com>
1262Date: Wed Apr 10 14:14:54 2019 -0700
1263
1264 Common source file change not directly applicable to open-vm-tools.
1265
1266commit 5a6ee8f90b90f42d24de1561ee94855c576933f3
1267Author: Oliver Kurth <okurth@vmware.com>
1268Date: Wed Apr 10 14:14:53 2019 -0700
1269
1270 Common header file change not applicable to open-vm-tools.
1271
1272commit d759ae5ecfcc6f1069decdb2511ec32bf12a1663
1273Author: Oliver Kurth <okurth@vmware.com>
1274Date: Wed Apr 10 14:14:53 2019 -0700
1275
1276 Asyncsocket in low latency send mode may write into freed memory
1344 1277
1345 *and only then*1278 Blast service encounters access violation exception during scale tests
1346 3. Strengthen the defaults, affecting only callers who needed the stronger1279 in AsyncTCPSocketSend() at bora\lib\asyncsocket\asyncsocket.c.
1347 defaults to be correct. ... but that would be a separate change in the
1348 future.
1349 1280
1350 Codegen differences (vmm.vmm64):1281 Root cause is asock refcount is not incremented before the inline
1351 --------------------------------1282 invocation of AsyncTCPSocketSendCallback() in the low latency send
1352 The function that uncovered this was ST_HandleCrossCall, which invoked1283 mode and asock is accessed right after this invocation to decrement
1353 Atomic_And64.1284 inLowLatencySendCb counter. AsyncTCPSocketSendCallback() on error
1285 would invoke error handler which in turn could close the asock
1286 leading to freeing of asock.
1354 1287
1355 original w/o explicit compiler mem barrier in ST_HandleCrossCall:1288 Issue wouldn't happen if AsyncWebSocket impl guarded all of its
1356 ...1289 transport->send(transport) calls with AsyncSocketAddRef(transport)
1357 lock and QWORD PTR [rdx+0x0],rax1290 and AsyncSocketRelease(transport) but isn't the case currently.
1358 movsxd rax,DWORD PTR [rip+offset] <-- load reordered after Atomic_And64
1359 lea rax,[rax+rax*2]
1360 lea rdi,[rax*8+0x0]
1361 1291
1362 with "memory" constraint, it's now identical to code w/an explicit1292 Fix is to add and release asock reference around the inline
1363 compiler mem barrier (which was the workaround):1293 invocation of AsyncTCPSocketSendCallback().
1364 ...1294
1365 mov edx,DWORD PTR [rip+offset] <-- load emitted prior to Atomic_And641295commit 325e244951790d7a848281fdb0236b0f6ee26996
1366 ...1296Author: Oliver Kurth <okurth@vmware.com>
1367 lock and QWORD PTR [rsi+0x0],rax1297Date: Wed Apr 10 14:14:53 2019 -0700
1368 movsxd rax,edx <-- ... and used after Atomic_And641298
1369 lea rax,[rax+rax*2]1299 Common header file change not applicable to open-vm-tools.
1370 lea rdi,[rax*8+0x0]1300
1301commit b90344ea3696506c7d2a8022c340b6aafb6f6a91
1302Author: Oliver Kurth <okurth@vmware.com>
1303Date: Wed Apr 10 14:14:52 2019 -0700
1304
1305 Common header file change not applicable to open-vm-tools.
1306
1307commit 13f457aa737d8bca27f09862cf2a45df8f4a425b
1308Author: Oliver Kurth <okurth@vmware.com>
1309Date: Wed Apr 10 14:14:52 2019 -0700
1310
1311 InitiateFileTransferToGuest fails when uploading file to root directory
1371 1312
1372 vmm.vmm64's .text section shrank 28 bytes1313 File upload to '/' on Linux fails the directory exists check.
1373 vmware-vmx's .text section shrank 16 bytes1314 This is caused by the file dirname being an empty string when parsed from
1315 the guest file path name per the documented behavior of File_GetPathName.
1374 1316
1375 Given that these are tiny fractions of the .text section, this suggests the1317 The caller of File_GetPathName needs to handle the expected empty dirname
1376 problem was quite rare, which is why it escaped our attention until now.1318 string when dealing with file path in the root ('/') filesystem on Linux.
1377 (Testing of vmx's lib/lock, lib/sync, lib/vprobe, and lib/misc saw no
1378 differences with GCC 4.4, 6.4, 7.1 or Clang)
1379 1319
1380 While in there: nuke some tabs1320 Proposed fix is to replace the dirname string with the root path ('/') when:
1321 A. dirname obtained from File_GetPathName call is an empty string AND
1322 B. the original file path name starts with the path separator ('/') on
1323 Linux (or *nix like) GOSes
1381 1324
1382 Slated for a future change: vmkapi_atomic.h1325 This allows for the directory checks to inspect the root folder before
1326 proceeding with the file transfer.
13831327
1384commit 333ac41076afff4e31ccb0d0688e1581e8c9019a1328commit 022121ce185662c05b3e1bf7166500f4f0f72bb2
1385Author: Oliver Kurth <okurth@vmware.com>1329Author: Oliver Kurth <okurth@vmware.com>
1386Date: Fri Mar 23 15:05:35 2018 -07001330Date: Wed Apr 10 14:14:51 2019 -0700
13871331
1388 Common header file change not applicable to open-vm-tools.1332 Common header file change not applicable to open-vm-tools.
13891333
1390commit 8671bd8d4f68a490a5b20f1876f05797f3057c4b1334commit 3de5e45099ae309b59f371e1d71c88c80815f92d
1391Author: Oliver Kurth <okurth@vmware.com>1335Author: Oliver Kurth <okurth@vmware.com>
1392Date: Fri Mar 23 15:05:35 2018 -07001336Date: Wed Apr 10 14:14:51 2019 -0700
13931337
1394 vmcheck.c VmCheck_IsVirtualWorld(): Always check for a working backdoor.1338 Backing out the previous change to vixTools.c
1395
1396 The specific checks for Xen and VirtualPC hypervisors currently happen
1397 only if the VMware hypervisor is not detected. The test for a working
1398 VMware backdoor is then done to avoid all other hypervisors.
1399 1339
1400 In the case where running on a VMware hypervisor and the backdoor1340 As the code committed was not the one reviewed but another version of the
1401 channel has been disabled such as with1341 fix under exploration, reverting the previous change.
1342
1343commit e38e881a04cdf1684913c0e65596f4965e8d0c32
1344Author: Oliver Kurth <okurth@vmware.com>
1345Date: Wed Apr 10 14:14:51 2019 -0700
1346
1347 Common header file change not applicable to open-vm-tools.
1348
1349commit f682261e7997aa440523af63369e4b99e4823af7
1350Author: Oliver Kurth <okurth@vmware.com>
1351Date: Wed Apr 10 14:14:49 2019 -0700
1352
1353 InitiateFileTransferToGuest fails when uploading file to root directory
1402 1354
1403 monitor_control.restrict_backdoor = "TRUE"1355 File upload to '/' on Linux fails the directory exists check.
1356 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.
1404 1357
1405 vmtoolsd, vmware-toolbox-cmd and vmware-checkvm will crash when1358 The caller of File_GetPathName needs to handle the expected empty dirname string when dealing with file path in the root ('/') filesystem on Linux.
1406 attempting to get the version number of the installed VMware Tools.
1407 1359
1408 Added an additional test to detect Linux KVM with the existing tests1360 Proposed fix is to replace the dirname string with the root path ('/') when:
1409 for the Xen hypervisor and Microsoft Virtual PC. Avoid checking for1361 A. dirname obtained from File_GetPathName call is an empty string AND
1410 a working backdoor if a non VMware hypervisor is seen.1362 B. the original file path name starts with the path separator ('/') on Linux (or *nix like) GOSes
1411 1363
1412 Microsoft Hv checking to be added later and is tracked in a separate PR.1364 This allows for the directory checks to inspect the root folder before proceedeing with the file transfer.
1413 Oracle VirtualBox provides no unique CPUID vendor signature string.
14141365
1415commit 09958952cc761075d5546b18bed0ce59260ec4db1366commit fcb7bb71a30f740b2d4bcfb8ae82733d044e6c00
1416Author: Oliver Kurth <okurth@vmware.com>1367Author: Oliver Kurth <okurth@vmware.com>
1417Date: Fri Mar 23 15:05:35 2018 -07001368Date: Thu Mar 28 12:43:00 2019 -0700
14181369
1419 FreeBSD open-vm-tools kernel modules compilations cannot locate <stdint.h>1370 Make building without ICU the default for Linux.
1420
1421 With the change for VMware headers to utilize the standard types
1422 defined in C99 standard headers, the compilation of FreeBSD kernel
1423 modules must specifically add /usr/include to the compilation
1424 options.
1425
1426 CFLAGS += -isystem /usr/include
1427
1428 This change updates the Makefiles's for FreeBSD kernel modules and
1429 drivers.
14301371
1431commit cdf0406dc669f2284e1e810ac5820f123d46a50e1372commit bd84c8a35c7aedb2638bba087bc1756cfb9ccf9d
1432Author: Oliver Kurth <okurth@vmware.com>1373Author: Oliver Kurth <okurth@vmware.com>
1433Date: Fri Mar 23 15:05:35 2018 -07001374Date: Thu Mar 28 12:43:00 2019 -0700
14341375
1435 FreeBSD: Improper use of sysconf() for getpwent buffer size leads to1376 Query disks for UUID
1436 vmtoolsd crash.
1437
1438 On FreeBSD, sysconf(_SC_GETPW_R_SIZE_MAX) can return -1 if it has
1439 no hard limit ultimately resulting in an incorrect buffer size.
1440
1441 This change is adapting the sysconf() ifixes done elsewhere to
1442 bora-vmsoft/services/plugins/vix/vixTools.c and updating the
1443 open-vm-tools AUTHORS file to share credit for the pull request.
1444 1377
1445 https://github.com/vmware/open-vm-tools/pull/2381378 As part of identifying a guest disk so it can be associated with a vmdk,
1379 query its serial number, which is the same as the vmdk's ddb.uuid
14461380
1447commit e20e9bd49d244749ee6bcd4ea7d57a26d891afbe1381commit 076e7e10f24b53fcbd7b21d95ee4763f5f527e45
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches