summaryrefslogtreecommitdiff
path: root/xmerge
diff options
context:
space:
mode:
authorCaolán McNamara <cmc@openoffice.org>2009-11-06 10:51:04 +0000
committerCaolán McNamara <cmc@openoffice.org>2009-11-06 10:51:04 +0000
commit4af04e66d256e1abe06a8f01e4911567413bf153 (patch)
tree36c472c13fcdc588d94b57164505618522ce757d /xmerge
parentd6a487f786328f689c73a86afef7fd550febca35 (diff)
cmcfixes66: #i106477# fix potential memleak and match new[]/delete[]
Diffstat (limited to 'xmerge')
-rw-r--r--xmerge/source/activesync/XMergeFilter.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/xmerge/source/activesync/XMergeFilter.cpp b/xmerge/source/activesync/XMergeFilter.cpp
index ce1bc61cc58e..a02f11d03ad3 100644
--- a/xmerge/source/activesync/XMergeFilter.cpp
+++ b/xmerge/source/activesync/XMergeFilter.cpp
@@ -343,11 +343,6 @@ TCHAR* CXMergeFilter::GetJavaBaseDir()
DWORD dwClassName = _MAX_PATH;
DWORD dwKeyName = _MAX_PATH;
- // Locations shouldn't be greater than _MAX_PATH
- TCHAR* szJavaHome = new TCHAR[_MAX_PATH + 1];
- DWORD dwSize = _MAX_PATH + 1;
-
-
/*
* Java leaves registry keys at HKLM\SOFTWARE\JavaSoft.
*
@@ -357,6 +352,10 @@ TCHAR* CXMergeFilter::GetJavaBaseDir()
if (lRet != ERROR_SUCCESS)
return NULL;
+ // Locations shouldn't be greater than _MAX_PATH
+ TCHAR* szJavaHome = new TCHAR[_MAX_PATH + 1];
+ DWORD dwSize = _MAX_PATH + 1;
+
/* use current version */
lRet = ::RegQueryValueEx(hKey, _T("CurrentVersion"), 0, NULL, (LPBYTE)szCurrentJava, &dwSize);
@@ -376,6 +375,7 @@ TCHAR* CXMergeFilter::GetJavaBaseDir()
if (lRet != ERROR_SUCCESS)
{
RegCloseKey(hKey);
+ delete [] szJavaHome;
return NULL;
}
@@ -387,7 +387,7 @@ TCHAR* CXMergeFilter::GetJavaBaseDir()
{
RegCloseKey(hDataKey);
RegCloseKey(hKey);
- delete szJavaHome;
+ delete [] szJavaHome;
return NULL;
}
@@ -400,7 +400,7 @@ TCHAR* CXMergeFilter::GetJavaBaseDir()
if (((dwAttrs & FILE_ATTRIBUTE_DIRECTORY) != FILE_ATTRIBUTE_DIRECTORY) || dwAttrs == INVALID_FILE_SIZE)
{
- delete szJavaHome;
+ delete [] szJavaHome;
return NULL;
}