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