Author: mladen.turk(a)jboss.com
Date: 2007-09-09 05:52:24 -0400 (Sun, 09 Sep 2007)
New Revision: 995
Modified:
trunk/sight/native/os/windows/tcpstat.c
Log:
Check for memory failures
Modified: trunk/sight/native/os/windows/tcpstat.c
===================================================================
--- trunk/sight/native/os/windows/tcpstat.c 2007-09-09 09:36:15 UTC (rev 994)
+++ trunk/sight/native/os/windows/tcpstat.c 2007-09-09 09:52:24 UTC (rev 995)
@@ -250,16 +250,13 @@
if (type == 0) {
DWORD dwSize = 0;
- e->p = malloc(sizeof(MIB_TCPTABLE));
+ if (!(e->p = sight_calloc(_E, sizeof(MIB_TCPTABLE), THROW_FMARK)))
+ goto cleanup;
rc = GetTcpTable(e->p, &dwSize, TRUE);
if (rc == ERROR_INSUFFICIENT_BUFFER) {
free(e->p);
- e->p = malloc(dwSize);
- if (!e->p) {
- throwAprMemoryException(_E, THROW_FMARK,
- apr_get_os_error());
+ if (!(e->p = sight_calloc(_E, dwSize, THROW_FMARK)))
goto cleanup;
- }
}
else if (rc != NO_ERROR) {
throwAprException(_E, APR_FROM_OS_ERROR(rc));
@@ -274,17 +271,15 @@
}
else if (type == 1) {
DWORD dwSize = 0;
- e->p = malloc(sizeof(MIB_TCPTABLE_OWNER_MODULE));
+ if (!(e->p = sight_calloc(_E, sizeof(MIB_TCPTABLE_OWNER_MODULE),
+ THROW_FMARK)))
+ goto cleanup;
rc = GetExtendedTcpTable(e->p, &dwSize, TRUE, AF_INET,
TCP_TABLE_OWNER_MODULE_ALL, 0);
if (rc == ERROR_INSUFFICIENT_BUFFER) {
free(e->p);
- e->p = malloc(dwSize);
- if (!e->p) {
- throwAprMemoryException(_E, THROW_FMARK,
- apr_get_os_error());
+ if (!(e->p = sight_calloc(_E, dwSize, THROW_FMARK)))
goto cleanup;
- }
}
else if (rc != NO_ERROR) {
throwAprException(_E, APR_FROM_OS_ERROR(rc));
@@ -300,21 +295,16 @@
}
else if (type == 2) {
DWORD dwSize = 0;
- if (!(e->p = malloc(sizeof(MIB_TCP6TABLE_OWNER_MODULE)))) {
- throwAprException(_E, apr_get_os_error());
+ if (!(e->p = sight_calloc(_E, sizeof(MIB_TCP6TABLE_OWNER_MODULE),
+ THROW_FMARK)))
goto cleanup;
- }
rc = GetExtendedTcpTable(e->p, &dwSize, TRUE, AF_INET6,
TCP_TABLE_OWNER_MODULE_ALL, 0);
dwSize = dwSize << 2;
if (rc == ERROR_INSUFFICIENT_BUFFER) {
free(e->p);
- e->p = malloc(dwSize);
- if (!e->p) {
- throwAprMemoryException(_E, THROW_FMARK,
- apr_get_os_error());
+ if (!(e->p = sight_calloc(_E, dwSize, THROW_FMARK)))
goto cleanup;
- }
}
else if (rc != NO_ERROR) {
throwAprException(_E, APR_FROM_OS_ERROR(rc));