diff --git a/dlls/oledb32/datainit.c b/dlls/oledb32/datainit.c
index 3c5293a3d24ed7bc72132031191cca835c373171..3a76e0b85a545ffa98a93c425718ee35e6f32dbf 100644
--- a/dlls/oledb32/datainit.c
+++ b/dlls/oledb32/datainit.c
@@ -520,6 +520,8 @@ static HRESULT get_dbpropset_from_proplist(struct dbprops *props, DBPROPSET **pr
         if (FAILED(hr))
         {
             ERR("failed to init property %s value as type %d\n", debugstr_w(pair->name), descr->type);
+            free_dbpropset(1, *propset);
+            *propset = NULL;
             return hr;
         }