Author: mladen.turk(a)jboss.com
Date: 2007-09-09 05:57:16 -0400 (Sun, 09 Sep 2007)
New Revision: 996
Modified:
trunk/sight/native/os/windows/udpstat.c
Log:
Check for memory failures
Modified: trunk/sight/native/os/windows/udpstat.c
===================================================================
--- trunk/sight/native/os/windows/udpstat.c 2007-09-09 09:52:24 UTC (rev 995)
+++ trunk/sight/native/os/windows/udpstat.c 2007-09-09 09:57:16 UTC (rev 996)
@@ -179,16 +179,15 @@
if (type == 0) {
DWORD dwSize = 0;
- e->p = malloc(sizeof(MIB_UDPTABLE));
+
+ if (!(e->p = sight_calloc(_E, sizeof(MIB_UDPTABLE),
+ THROW_FMARK)))
+ goto cleanup;
rc = GetUdpTable(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));
@@ -203,17 +202,15 @@
}
else if (type == 1) {
DWORD dwSize = 0;
- e->p = malloc(sizeof(MIB_UDPTABLE_OWNER_MODULE));
+ if (!(e->p = sight_calloc(_E, sizeof(MIB_UDPTABLE_OWNER_MODULE),
+ THROW_FMARK)))
+ goto cleanup;
rc = GetExtendedUdpTable(e->p, &dwSize, TRUE, AF_INET,
UDP_TABLE_OWNER_MODULE, 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));
@@ -229,18 +226,17 @@
}
else if (type == 2) {
DWORD dwSize = 0;
- e->p = malloc(sizeof(MIB_UDP6TABLE_OWNER_MODULE));
+ if (!(e->p = sight_calloc(_E, sizeof(MIB_UDP6TABLE_OWNER_MODULE),
+ THROW_FMARK)))
+ goto cleanup;
+
rc = GetExtendedUdpTable(e->p, &dwSize, TRUE, AF_INET6,
UDP_TABLE_OWNER_MODULE, 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));