qga-vss: Replace asserts with condition and report error

Reviewed-by: Yan Vugenfirer <yvugenfi@redhat.com>
Link: https://lore.kernel.org/qemu-devel/20250825145241.170717-2-kkostiuk@redhat.com
Signed-off-by: Kostiantyn Kostiuk <kkostiuk@redhat.com>
This commit is contained in:
Kostiantyn Kostiuk
2025-08-25 17:52:40 +03:00
parent 42bdb911c2
commit 9646155bb0

View File

@@ -347,7 +347,12 @@ void requester_freeze(int *num_vols, void *mountpoints, ErrorSet *errset)
goto out;
}
assert(pCreateVssBackupComponents != NULL);
if (!pCreateVssBackupComponents) {
err_set(errset, (HRESULT)ERROR_PROC_NOT_FOUND,
"CreateVssBackupComponents proc address absent. Did you call requester_init()?");
goto out;
}
hr = pCreateVssBackupComponents(&vss_ctx.pVssbc);
if (FAILED(hr)) {
err_set(errset, hr, "failed to create VSS backup components");
@@ -579,8 +584,16 @@ void requester_thaw(int *num_vols, void *mountpints, ErrorSet *errset)
/* Tell the provider that the snapshot is finished. */
SetEvent(vss_ctx.hEventThaw);
assert(vss_ctx.pVssbc);
assert(vss_ctx.pAsyncSnapshot);
if (!vss_ctx.pVssbc) {
err_set(errset, (HRESULT)VSS_E_BAD_STATE,
"CreateVssBackupComponents is missing. Did you freeze the volumes?");
return;
}
if (!vss_ctx.pAsyncSnapshot) {
err_set(errset, (HRESULT)VSS_E_BAD_STATE,
"AsyncSnapshot set is missing. Did you freeze the volumes?");
return;
}
HRESULT hr = WaitForAsync(vss_ctx.pAsyncSnapshot);
switch (hr) {