From: Piotr Caban <piotr@codeweavers.com> --- dlls/msado15/recordset.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/dlls/msado15/recordset.c b/dlls/msado15/recordset.c index d96411b022a..25232872309 100644 --- a/dlls/msado15/recordset.c +++ b/dlls/msado15/recordset.c @@ -3475,14 +3475,20 @@ static HRESULT WINAPI recordset_Find( _Recordset *iface, BSTR criteria, LONG ski V_BSTR(&v) = col; hr = get_accessor( recordset, &v, &hacc ); SysFreeString( col ); - if (SUCCEEDED(hr)) - hr = get_bookmark_data( &start, &bm_data, &bm_len, &int_buf ); if (FAILED(hr)) { SysFreeString( val ); if (free_bookmark) VariantClear( &start ); return hr; } + hr = get_bookmark_data( &start, &bm_data, &bm_len, &int_buf ); + if (FAILED(hr)) + { + IAccessor_ReleaseAccessor( recordset->accessor, hacc, NULL ); + SysFreeString( val ); + if (free_bookmark) VariantClear( &start ); + return hr; + } if (SUCCEEDED(_Recordset_Supports( &recordset->Recordset_iface, adHoldRecords, &b )) && b && SUCCEEDED(IRowset_AddRefRows( recordset->row_set, 1, &recordset->current_row, NULL, NULL ))) -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10750