diff --git a/reactos/dll/win32/msi/database.c b/reactos/dll/win32/msi/database.c index cce271769e7..83b1f2ccfbb 100644 --- a/reactos/dll/win32/msi/database.c +++ b/reactos/dll/win32/msi/database.c @@ -1206,7 +1206,7 @@ static UINT merge_diff_row(MSIRECORD *rec, LPVOID param) MERGETABLE *table = data->curtable; MERGEROW *mergerow; MSIQUERY *dbview; - MSIRECORD *row; + MSIRECORD *row = NULL; LPWSTR query; UINT r; diff --git a/reactos/dll/win32/msi/msi.c b/reactos/dll/win32/msi/msi.c index 86713fdfabd..9503cf904f0 100644 --- a/reactos/dll/win32/msi/msi.c +++ b/reactos/dll/win32/msi/msi.c @@ -1553,7 +1553,7 @@ UINT WINAPI MsiQueryComponentStateW(LPCWSTR szProductCode, TRACE("(%s, %s, %d, %s, %p)\n", debugstr_w(szProductCode), debugstr_w(szUserSid), dwContext, debugstr_w(szComponent), pdwState); - if (!pdwState) + if (!pdwState || !szComponent) return ERROR_INVALID_PARAMETER; if (!szProductCode || !*szProductCode || lstrlenW(szProductCode) != GUID_SIZE - 1) diff --git a/reactos/dll/win32/msi/msi.spec b/reactos/dll/win32/msi/msi.spec index 017fdbe4adb..902e5f80573 100644 --- a/reactos/dll/win32/msi/msi.spec +++ b/reactos/dll/win32/msi/msi.spec @@ -250,8 +250,8 @@ 254 stub MsiDeterminePatchSequenceW 255 stdcall MsiSourceListAddSourceExA(str str long long str long) 256 stdcall MsiSourceListAddSourceExW(wstr wstr long long wstr long) -257 stub MsiSourceListClearSourceA -258 stub MsiSourceListClearSourceW +257 stdcall MsiSourceListClearSourceA(str str long long str) +258 stdcall MsiSourceListClearSourceW(wstr wstr long long wstr) 259 stub MsiSourceListClearAllExA 260 stub MsiSourceListClearAllExW 261 stub MsiSourceListForceResolutionExA diff --git a/reactos/dll/win32/msi/registry.c b/reactos/dll/win32/msi/registry.c index 9a43b8d1943..36897246ad8 100644 --- a/reactos/dll/win32/msi/registry.c +++ b/reactos/dll/win32/msi/registry.c @@ -1894,7 +1894,7 @@ static UINT msi_enum_patches(LPCWSTR szProductCode, LPCWSTR szUserSid, MSIINSTALLCONTEXT *pdwTargetProductContext, LPWSTR szTargetUserSid, LPDWORD pcchTargetUserSid, LPWSTR *szTransforms) { - UINT r; + UINT r = ERROR_INVALID_PARAMETER; if (dwContext & MSIINSTALLCONTEXT_USERMANAGED) { diff --git a/reactos/dll/win32/msi/regsvr.c b/reactos/dll/win32/msi/regsvr.c index bac4eb48e66..abe92cfdf97 100644 --- a/reactos/dll/win32/msi/regsvr.c +++ b/reactos/dll/win32/msi/regsvr.c @@ -42,7 +42,6 @@ #include "initguid.h" #include "msipriv.h" #include "msiserver.h" - WINE_DEFAULT_DEBUG_CHANNEL(msi); /* diff --git a/reactos/dll/win32/msi/source.c b/reactos/dll/win32/msi/source.c index e8e4a113d5a..8cdaf4001e1 100644 --- a/reactos/dll/win32/msi/source.c +++ b/reactos/dll/win32/msi/source.c @@ -1314,3 +1314,27 @@ UINT WINAPI MsiSourceListClearAllW( LPCWSTR szProduct, LPCWSTR szUserName, DWORD FIXME("(%s %s %d)\n", debugstr_w(szProduct), debugstr_w(szUserName), dwReserved); return ERROR_SUCCESS; } + +/****************************************************************** + * MsiSourceListClearSourceA (MSI.@) + */ +UINT WINAPI MsiSourceListClearSourceA(LPCSTR szProductCodeOrPatchCode, LPCSTR szUserSid, + MSIINSTALLCONTEXT dwContext, DWORD dwOptions, + LPCSTR szSource) +{ + FIXME("(%s %s %x %x %s)\n", debugstr_a(szProductCodeOrPatchCode), debugstr_a(szUserSid), + dwContext, dwOptions, debugstr_a(szSource)); + return ERROR_SUCCESS; +} + +/****************************************************************** + * MsiSourceListClearSourceW (MSI.@) + */ +UINT WINAPI MsiSourceListClearSourceW(LPCWSTR szProductCodeOrPatchCode, LPCWSTR szUserSid, + MSIINSTALLCONTEXT dwContext, DWORD dwOptions, + LPCWSTR szSource) +{ + FIXME("(%s %s %x %x %s)\n", debugstr_w(szProductCodeOrPatchCode), debugstr_w(szUserSid), + dwContext, dwOptions, debugstr_w(szSource)); + return ERROR_SUCCESS; +} diff --git a/reactos/dll/win32/msi/storages.c b/reactos/dll/win32/msi/storages.c index 2e21cb87bba..302906b8466 100644 --- a/reactos/dll/win32/msi/storages.c +++ b/reactos/dll/win32/msi/storages.c @@ -134,7 +134,7 @@ static UINT STORAGES_get_row( struct tagMSIVIEW *view, UINT row, MSIRECORD **rec static HRESULT stream_to_storage(IStream *stm, IStorage **stg) { - ILockBytes *lockbytes; + ILockBytes *lockbytes = NULL; STATSTG stat; LPVOID data; HRESULT hr; @@ -177,7 +177,7 @@ static HRESULT stream_to_storage(IStream *stm, IStorage **stg) done: msi_free(data); - ILockBytes_Release(lockbytes); + if (lockbytes) ILockBytes_Release(lockbytes); return hr; } diff --git a/reactos/dll/win32/msi/table.c b/reactos/dll/win32/msi/table.c index 7cd1c7107b7..e9c2196c163 100644 --- a/reactos/dll/win32/msi/table.c +++ b/reactos/dll/win32/msi/table.c @@ -1818,7 +1818,7 @@ static UINT TABLE_remove_column(struct tagMSIVIEW *view, LPCWSTR table, UINT num done: msiobj_release(&rec->hdr); - if (columns) columns->ops->delete(columns); + columns->ops->delete(columns); return r; }