Commit 0bbd6cb0 authored by Nikolay Sivov's avatar Nikolay Sivov Committed by Alexandre Julliard

gameux: Fix release/free of uninitialized pointers (Coverity).

parent ab8cc4ac
...@@ -681,7 +681,7 @@ static HRESULT GAMEUX_UpdateGame(LPGUID InstanceID) { ...@@ -681,7 +681,7 @@ static HRESULT GAMEUX_UpdateGame(LPGUID InstanceID) {
HRESULT hr; HRESULT hr;
GAME_INSTALL_SCOPE installScope; GAME_INSTALL_SCOPE installScope;
LPWSTR lpRegistryPath; LPWSTR lpRegistryPath;
LPWSTR lpGDFBinaryPath, lpGameInstallDirectory; LPWSTR lpGDFBinaryPath;
TRACE("(%s)\n", debugstr_guid(InstanceID)); TRACE("(%s)\n", debugstr_guid(InstanceID));
...@@ -702,6 +702,8 @@ static HRESULT GAMEUX_UpdateGame(LPGUID InstanceID) { ...@@ -702,6 +702,8 @@ static HRESULT GAMEUX_UpdateGame(LPGUID InstanceID) {
if(SUCCEEDED(hr)) if(SUCCEEDED(hr))
{ {
WCHAR *lpGameInstallDirectory = NULL;
/* game found, it's registry path is in lpRegistryPath and install /* game found, it's registry path is in lpRegistryPath and install
* scope in installScope */ * scope in installScope */
TRACE("game found in registry (path %s), updating\n", debugstr_w(lpRegistryPath)); TRACE("game found in registry (path %s), updating\n", debugstr_w(lpRegistryPath));
......
...@@ -112,7 +112,7 @@ static HRESULT GAMEUX_updateStatisticsFile(struct GAMEUX_STATS *stats) ...@@ -112,7 +112,7 @@ static HRESULT GAMEUX_updateStatisticsFile(struct GAMEUX_STATS *stats)
HRESULT hr = S_OK; HRESULT hr = S_OK;
IXMLDOMDocument *document; IXMLDOMDocument *document;
IXMLDOMElement *root, *categoryElement, *statisticsElement; IXMLDOMElement *root, *statisticsElement;
IXMLDOMNode *categoryNode, *statisticsNode; IXMLDOMNode *categoryNode, *statisticsNode;
VARIANT vStatsFilePath, vValue; VARIANT vStatsFilePath, vValue;
BSTR bstrStatistics = NULL, bstrCategory = NULL, bstrIndex = NULL, BSTR bstrStatistics = NULL, bstrCategory = NULL, bstrIndex = NULL,
...@@ -178,6 +178,8 @@ static HRESULT GAMEUX_updateStatisticsFile(struct GAMEUX_STATS *stats) ...@@ -178,6 +178,8 @@ static HRESULT GAMEUX_updateStatisticsFile(struct GAMEUX_STATS *stats)
if(SUCCEEDED(hr)) if(SUCCEEDED(hr))
for(i=0; i<MAX_CATEGORIES; ++i) for(i=0; i<MAX_CATEGORIES; ++i)
{ {
IXMLDOMElement *categoryElement = NULL;
if(lstrlenW(stats->categories[i].sName)==0) if(lstrlenW(stats->categories[i].sName)==0)
continue; continue;
...@@ -187,7 +189,7 @@ static HRESULT GAMEUX_updateStatisticsFile(struct GAMEUX_STATS *stats) ...@@ -187,7 +189,7 @@ static HRESULT GAMEUX_updateStatisticsFile(struct GAMEUX_STATS *stats)
hr = IXMLDOMDocument_createNode(document, vValue, bstrCategory, NULL, &categoryNode); hr = IXMLDOMDocument_createNode(document, vValue, bstrCategory, NULL, &categoryNode);
if(SUCCEEDED(hr)) if(SUCCEEDED(hr))
hr = IXMLDOMNode_QueryInterface(categoryNode, &IID_IXMLDOMElement, (LPVOID*)&categoryElement); hr = IXMLDOMNode_QueryInterface(categoryNode, &IID_IXMLDOMElement, (void**)&categoryElement);
V_INT(&vValue) = i; V_INT(&vValue) = i;
if(SUCCEEDED(hr)) if(SUCCEEDED(hr))
...@@ -207,6 +209,9 @@ static HRESULT GAMEUX_updateStatisticsFile(struct GAMEUX_STATS *stats) ...@@ -207,6 +209,9 @@ static HRESULT GAMEUX_updateStatisticsFile(struct GAMEUX_STATS *stats)
hr = IXMLDOMElement_setAttribute(categoryElement, bstrName, vValue); hr = IXMLDOMElement_setAttribute(categoryElement, bstrName, vValue);
} }
if (categoryElement)
IXMLDOMElement_Release(categoryElement);
SysFreeString(V_BSTR(&vValue)); SysFreeString(V_BSTR(&vValue));
if(SUCCEEDED(hr)) if(SUCCEEDED(hr))
...@@ -269,7 +274,6 @@ static HRESULT GAMEUX_updateStatisticsFile(struct GAMEUX_STATS *stats) ...@@ -269,7 +274,6 @@ static HRESULT GAMEUX_updateStatisticsFile(struct GAMEUX_STATS *stats)
if(SUCCEEDED(hr)) if(SUCCEEDED(hr))
hr = IXMLDOMElement_appendChild(root, categoryNode, &categoryNode); hr = IXMLDOMElement_appendChild(root, categoryNode, &categoryNode);
IXMLDOMElement_Release(categoryElement);
IXMLDOMNode_Release(categoryNode); IXMLDOMNode_Release(categoryNode);
if(FAILED(hr)) if(FAILED(hr))
...@@ -939,16 +943,13 @@ static HRESULT WINAPI GameStatisticsImpl_Save( ...@@ -939,16 +943,13 @@ static HRESULT WINAPI GameStatisticsImpl_Save(
BOOL trackChanges) BOOL trackChanges)
{ {
GameStatisticsImpl *This = impl_from_IGameStatistics(iface); GameStatisticsImpl *This = impl_from_IGameStatistics(iface);
HRESULT hr = S_OK;
TRACE("(%p, %d)\n", This, trackChanges); TRACE("(%p, %d)\n", This, trackChanges);
if(trackChanges) if(trackChanges)
FIXME("tracking changes not yet implemented\n"); FIXME("tracking changes not yet implemented\n");
hr = GAMEUX_updateStatisticsFile(&This->stats); return GAMEUX_updateStatisticsFile(&This->stats);
return hr;
} }
static HRESULT WINAPI GameStatisticsImpl_SetLastPlayedCategory( static HRESULT WINAPI GameStatisticsImpl_SetLastPlayedCategory(
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment