Skip to content

Commit ec040b1

Browse files
committed
- shut some of the msvc warnings up
- change malloc's to HeapAlloc's - fix memory leaks svn path=/trunk/; revision=20276
1 parent ceb1bf5 commit ec040b1

File tree

1 file changed

+29
-18
lines changed

1 file changed

+29
-18
lines changed

reactos/apps/utils/net/netstat/netstat.c

Lines changed: 29 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ BOOL ParseCmdline(int argc, char* argv[])
108108

109109
TCHAR Proto[5];
110110

111-
if ((argc == 1) || (isdigit(*argv[1])))
111+
if ((argc == 1) || (_istdigit(*argv[1])))
112112
bNoOptions = TRUE;
113113

114114
/* Parse command line for options we have been given. */
@@ -123,23 +123,18 @@ BOOL ParseCmdline(int argc, char* argv[])
123123
switch (tolower(c))
124124
{
125125
case 'a' :
126-
//_tprintf(_T("got a\n"));
127126
bDoShowAllCons = TRUE;
128127
break;
129128
case 'e' :
130-
//_tprintf(_T("got e\n"));
131129
bDoShowEthStats = TRUE;
132130
break;
133131
case 'n' :
134-
//_tprintf(_T("got n\n"));
135132
bDoShowNumbers = TRUE;
136133
break;
137134
case 's' :
138-
//_tprintf(_T("got s\n"));
139135
bDoShowProtoStats = TRUE;
140136
break;
141137
case 'p' :
142-
//_tprintf(_T("got p\n"));
143138
bDoShowProtoCons = TRUE;
144139

145140
strncpy(Proto, (++argv)[i], sizeof(Proto));
@@ -171,10 +166,12 @@ BOOL ParseCmdline(int argc, char* argv[])
171166
}
172167
}
173168
}
174-
else if (isdigit(*argv[i]))
169+
else if (_istdigit(*argv[i]))
175170
{
176-
_stscanf(argv[i], "%lu", &Interval);
177-
bLoopOutput = TRUE;
171+
if (_stscanf(argv[i], "%lu", &Interval) != EOF)
172+
bLoopOutput = TRUE;
173+
else
174+
return EXIT_FAILURE;
178175
}
179176
// else
180177
// {
@@ -278,7 +275,7 @@ VOID ShowIpStatistics()
278275
PMIB_IPSTATS pIpStats;
279276
DWORD dwRetVal;
280277

281-
pIpStats = (MIB_IPSTATS*) malloc(sizeof(MIB_IPSTATS));
278+
pIpStats = (MIB_IPSTATS*) HeapAlloc(GetProcessHeap(), 0, sizeof(MIB_IPSTATS));
282279

283280
if ((dwRetVal = GetIpStatistics(pIpStats)) == NO_ERROR)
284281
{
@@ -303,14 +300,16 @@ VOID ShowIpStatistics()
303300
}
304301
else
305302
DoFormatMessage(dwRetVal);
303+
304+
HeapFree(GetProcessHeap(), 0, pIpStats);
306305
}
307306

308307
VOID ShowIcmpStatistics()
309308
{
310309
PMIB_ICMP pIcmpStats;
311310
DWORD dwRetVal;
312311

313-
pIcmpStats = (MIB_ICMP*) malloc(sizeof(MIB_ICMP));
312+
pIcmpStats = (MIB_ICMP*) HeapAlloc(GetProcessHeap(), 0, sizeof(MIB_ICMP));
314313

315314
if ((dwRetVal = GetIcmpStatistics(pIcmpStats)) == NO_ERROR)
316315
{
@@ -346,14 +345,16 @@ VOID ShowIcmpStatistics()
346345
else
347346
DoFormatMessage(dwRetVal);
348347

348+
HeapFree(GetProcessHeap(), 0, pIcmpStats);
349+
349350
}
350351

351352
VOID ShowTcpStatistics()
352353
{
353354
PMIB_TCPSTATS pTcpStats;
354355
DWORD dwRetVal;
355356

356-
pTcpStats = (MIB_TCPSTATS*) malloc(sizeof(MIB_TCPSTATS));
357+
pTcpStats = (MIB_TCPSTATS*) HeapAlloc(GetProcessHeap(), 0, sizeof(MIB_TCPSTATS));
357358

358359
if ((dwRetVal = GetTcpStatistics(pTcpStats)) == NO_ERROR)
359360
{
@@ -369,14 +370,16 @@ VOID ShowTcpStatistics()
369370
}
370371
else
371372
DoFormatMessage(dwRetVal);
373+
374+
HeapFree(GetProcessHeap(), 0, pTcpStats);
372375
}
373376

374377
VOID ShowUdpStatistics()
375378
{
376379
PMIB_UDPSTATS pUdpStats;
377380
DWORD dwRetVal;
378381

379-
pUdpStats = (MIB_UDPSTATS*) malloc(sizeof(MIB_UDPSTATS));
382+
pUdpStats = (MIB_UDPSTATS*) HeapAlloc(GetProcessHeap(), 0, sizeof(MIB_UDPSTATS));
380383

381384
if ((dwRetVal = GetUdpStatistics(pUdpStats)) == NO_ERROR)
382385
{
@@ -388,6 +391,8 @@ VOID ShowUdpStatistics()
388391
}
389392
else
390393
DoFormatMessage(dwRetVal);
394+
395+
HeapFree(GetProcessHeap(), 0, pUdpStats);
391396
}
392397

393398
VOID ShowEthernetStatistics()
@@ -396,12 +401,12 @@ VOID ShowEthernetStatistics()
396401
DWORD dwSize = 0;
397402
DWORD dwRetVal = 0;
398403

399-
pIfTable = (MIB_IFTABLE*) malloc(sizeof(MIB_IFTABLE));
404+
pIfTable = (MIB_IFTABLE*) HeapAlloc(GetProcessHeap(), 0, sizeof(MIB_IFTABLE));
400405

401406
if (GetIfTable(pIfTable, &dwSize, 0) == ERROR_INSUFFICIENT_BUFFER)
402407
{
403-
GlobalFree(pIfTable);
404-
pIfTable = (MIB_IFTABLE*) malloc(dwSize);
408+
HeapFree(GetProcessHeap(), 0, pIfTable);
409+
pIfTable = (MIB_IFTABLE*) HeapAlloc(GetProcessHeap(), 0, dwSize);
405410

406411
if ((dwRetVal = GetIfTable(pIfTable, &dwSize, 0)) == NO_ERROR)
407412
{
@@ -423,6 +428,7 @@ VOID ShowEthernetStatistics()
423428
else
424429
DoFormatMessage(dwRetVal);
425430
}
431+
HeapFree(GetProcessHeap(), 0, pIfTable);
426432
}
427433

428434
VOID ShowTcpTable()
@@ -444,12 +450,13 @@ VOID ShowTcpTable()
444450
DoFormatMessage(error);
445451
exit(EXIT_FAILURE);
446452
}
447-
tcpTable = (PMIB_TCPTABLE)malloc(dwSize);
453+
tcpTable = (PMIB_TCPTABLE) HeapAlloc(GetProcessHeap(), 0, dwSize);
448454
error = GetTcpTable(tcpTable, &dwSize, TRUE );
449455
if (error)
450456
{
451457
printf("Failed to snapshot TCP endpoints table.\n");
452458
DoFormatMessage(error);
459+
HeapFree(GetProcessHeap(), 0, tcpTable);
453460
exit(EXIT_FAILURE);
454461
}
455462

@@ -475,6 +482,7 @@ VOID ShowTcpTable()
475482
Host, Remote, TcpState[tcpTable->table[i].dwState]);
476483
}
477484
}
485+
HeapFree(GetProcessHeap(), 0, tcpTable);
478486
}
479487

480488

@@ -495,12 +503,13 @@ VOID ShowUdpTable()
495503
DoFormatMessage(error);
496504
exit(EXIT_FAILURE);
497505
}
498-
udpTable = (PMIB_UDPTABLE)malloc(dwSize);
506+
udpTable = (PMIB_UDPTABLE) HeapAlloc(GetProcessHeap(), 0, dwSize);
499507
error = GetUdpTable(udpTable, &dwSize, TRUE);
500508
if (error)
501509
{
502510
printf("Failed to snapshot UDP endpoints table.\n");
503511
DoFormatMessage(error);
512+
HeapFree(GetProcessHeap(), 0, udpTable);
504513
exit(EXIT_FAILURE);
505514
}
506515

@@ -516,6 +525,8 @@ VOID ShowUdpTable()
516525

517526
_tprintf(_T(" %-6s %-22s %-22s\n"), _T("UDP"), Host, _T(":*:"));
518527
}
528+
529+
HeapFree(GetProcessHeap(), 0, udpTable);
519530
}
520531

521532

0 commit comments

Comments
 (0)