diff options
author | Kostiantyn Kostiuk <kkostiuk@redhat.com> | 2025-08-25 17:52:40 +0300 |
---|---|---|
committer | Kostiantyn Kostiuk <kkostiuk@redhat.com> | 2025-09-01 14:02:18 +0300 |
commit | 9646155bb01c076f982601b1ebdead73efcb58a1 (patch) | |
tree | 0e230f8f6a7272fe0f565413226735a09abb80b4 | |
parent | 42bdb911c22f9449f7a310efc73b70548ca42b24 (diff) | |
download | qemu-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.cpp | 19 |
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) { |