Reviewed-by: Kostiantyn Kostiuk <[email protected]>
On Mon, Sep 7, 2026 at 1:52 PM Marc-André Lureau < [email protected]> wrote: > bstrWriterName is obtained from GetIdentity in the outer writer loop, > but freed inside the inner component loop. When a writer has multiple > components, the second and subsequent iterations operate with a NULL > bstrWriterName. If an error occurs in those iterations, the error > message passes NULL > > Move SysFreeString(bstrWriterName) to the end of the outer loop where > it belongs. > > Fixes: b39297aedfab ("qemu-ga: Add Windows VSS provider and requester as > DLL") > Signed-off-by: Marc-André Lureau <[email protected]> > --- > qga/vss-win32/requester.cpp | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/qga/vss-win32/requester.cpp b/qga/vss-win32/requester.cpp > index 52176d751274..b9269acb5b8e 100644 > --- a/qga/vss-win32/requester.cpp > +++ b/qga/vss-win32/requester.cpp > @@ -230,11 +230,11 @@ static void AddComponents(ErrorSet *errset) > goto out; > } > } > - SysFreeString(bstrWriterName); > - bstrWriterName = NULL; > pComponent->FreeComponentInfo(info); > info = NULL; > } > + SysFreeString(bstrWriterName); > + bstrWriterName = NULL; > } > out: > if (bstrWriterName) { > > -- > 2.55.0.543.g5ebe2ebe4ea8 > > >
