Author: cwittich
Date: Fri Sep 4 19:03:41 2015
New Revision: 69009
URL:
http://svn.reactos.org/svn/reactos?rev=69009&view=rev
Log:
[IPCONFIG] fix format string issues and double free
CID 502632
CID 502633
CID 502634
CID 1322301
Modified:
trunk/reactos/base/applications/network/ipconfig/ipconfig.c
Modified: trunk/reactos/base/applications/network/ipconfig/ipconfig.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/network/…
==============================================================================
--- trunk/reactos/base/applications/network/ipconfig/ipconfig.c [iso-8859-1] (original)
+++ trunk/reactos/base/applications/network/ipconfig/ipconfig.c [iso-8859-1] Fri Sep 4
19:03:41 2015
@@ -208,32 +208,35 @@
0,
dwDataSize);
+ if (ConTypeTmp == NULL)
+ return NULL;
+
ConType = (LPTSTR)HeapAlloc(ProcessHeap,
0,
dwDataSize);
- if (ConType && ConTypeTmp)
- {
- if(RegQueryValueEx(hKey,
- _T("Name"),
- NULL,
- &dwType,
- (PBYTE)ConTypeTmp,
- &dwDataSize) != ERROR_SUCCESS)
- {
- HeapFree(ProcessHeap,
- 0,
- ConType);
-
- HeapFree(ProcessHeap,
- 0,
- ConTypeTmp);
-
- ConType = NULL;
- }
-
- if (ConType) CharToOem(ConTypeTmp, ConType);
+
+ if (ConType == NULL)
+ {
HeapFree(ProcessHeap, 0, ConTypeTmp);
- }
+ return NULL;
+ }
+
+ if(RegQueryValueEx(hKey,
+ _T("Name"),
+ NULL,
+ &dwType,
+ (PBYTE)ConTypeTmp,
+ &dwDataSize) != ERROR_SUCCESS)
+ {
+ HeapFree(ProcessHeap,
+ 0,
+ ConType);
+
+ ConType = NULL;
+ }
+
+ if (ConType) CharToOem(ConTypeTmp, ConType);
+ HeapFree(ProcessHeap, 0, ConTypeTmp);
}
}
@@ -580,12 +583,12 @@
for (i = 0; i < pInfo->NumAdapters; i++)
{
CopyMemory(&AdapterInfo, &pInfo->Adapter[i],
sizeof(IP_ADAPTER_INDEX_MAP));
- _tprintf(_T("name - %S\n"), pInfo->Adapter[i].Name);
+ _tprintf(_T("name - %ls\n"), pInfo->Adapter[i].Name);
/* Call IpReleaseAddress to release the IP address on the specified
adapter. */
if ((ret = IpReleaseAddress(&AdapterInfo)) != NO_ERROR)
{
- _tprintf(_T("\nAn error occured while releasing interface
%S : \n"), AdapterInfo.Name);
+ _tprintf(_T("\nAn error occured while releasing interface
%ls : \n"), AdapterInfo.Name);
DoFormatMessage(ret);
}
}
@@ -656,7 +659,7 @@
for (i = 0; i < pInfo->NumAdapters; i++)
{
CopyMemory(&AdapterInfo, &pInfo->Adapter[i],
sizeof(IP_ADAPTER_INDEX_MAP));
- _tprintf(_T("name - %S\n"), pInfo->Adapter[i].Name);
+ _tprintf(_T("name - %ls\n"), pInfo->Adapter[i].Name);
/* Call IpRenewAddress to renew the IP address on the specified adapter.
*/