aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKostiantyn Kostiuk <kkostiuk@redhat.com>2025-08-25 17:52:40 +0300
committerKostiantyn Kostiuk <kkostiuk@redhat.com>2025-09-01 14:02:18 +0300
commit9646155bb01c076f982601b1ebdead73efcb58a1 (patch)
tree0e230f8f6a7272fe0f565413226735a09abb80b4
parent42bdb911c22f9449f7a310efc73b70548ca42b24 (diff)
downloadqemu-9646155bb01c076f982601b1ebdead73efcb58a1.zip
qemu-9646155bb01c076f982601b1ebdead73efcb58a1.tar.gz
qemu-9646155bb01c076f982601b1ebdead73efcb58a1.tar.bz2
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>
-rw-r--r--qga/vss-win32/requester.cpp19
1 files changed, 16 insertions, 3 deletions
diff --git a/qga/vss-win32/requester.cpp b/qga/vss-win32/requester.cpp
index 4401d55..bc260ab 100644
--- a/qga/vss-win32/requester.cpp
+++ b/qga/vss-win32/requester.cpp
@@ -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) {