Hi, While studying QGA VSS code, I collected some correctness and robustness patches.
Signed-off-by: Marc-André Lureau <[email protected]> --- Marc-André Lureau (17): qga/installer: preserve VssOption registry value across upgrades qga/vss-win32: fix race condition in COM Release() methods qga/vss-win32: pass valid SERVICE_STATUS to ControlService qga/vss-win32: explicit NULL/zero initialization qga/vss-win32: free bstrWriterName in outer writer loop qga/vss-win32: pass character count instead of byte count to volume APIs qga/vss-win32: allow pceltFetched==NULL in IEnumObject::Next qga/vss-win32: return an interface pointer for IID_IUnknown qga/vss-win32: use GetLastError() after FindFirstVolumeW failure qga/vss-win32: guard CloseServiceHandle calls against NULL handles qga/vss-win32: avoid CRT calls in DllMain debug logging qga/vss-win32: evaluate err_set() macro argument only once qga/vss-win32: report QueryStatus return value on failure qga/vss-win32: check GetLastError() after FindNextVolumeW failure qga/vss-win32: initialize *num_vols at start of requester_freeze qga/vss-win32: restrict access to freeze/thaw synchronisation events qga/vss-win32: log to file during COM+ registration qga/installer/qemu-ga.wxs | 19 ++++++++-- qga/vss-win32/install.cpp | 31 ++++++++++++++--- qga/vss-win32/provider.cpp | 17 +++++---- qga/vss-win32/requester.cpp | 85 +++++++++++++++++++++++++++++++++++++-------- 4 files changed, 124 insertions(+), 28 deletions(-) --- base-commit: ff1d2d19d7e24893e2012d879f8e73077e17b9bd change-id: 20260902-qga-6b06950cd896 Best regards, -- Marc-André Lureau <[email protected]>
