8205342: windows : potential memleaks in getAdapter(s) in NetworkInterface_winXP.c

Reviewed-by: alanb, igerasim, stuefe
This commit is contained in:
Matthias Baesken 2018-06-26 09:17:53 +02:00
parent 27896721a0
commit 7628589694

View File

@ -75,14 +75,8 @@ static int getAdapters (JNIEnv *env, IP_ADAPTER_ADDRESSES **adapters) {
DWORD ret, flags;
IP_ADAPTER_ADDRESSES *adapterInfo;
ULONG len;
char *error_msg_buf = NULL;
size_t error_msg_buf_size =
strlen("IP Helper Library GetAdaptersAddresses function failed"
" with error == ") + 10;
int _ret = 0;
int try;
adapterInfo = (IP_ADAPTER_ADDRESSES *) malloc(BUFF_SIZE);
if (adapterInfo == NULL) {
JNU_ThrowByName(env, "java/lang/OutOfMemoryError",
@ -126,21 +120,16 @@ static int getAdapters (JNIEnv *env, IP_ADAPTER_ADDRESSES **adapters) {
"IP Helper Library GetAdaptersAddresses function failed "
"with ERROR_ADDRESS_NOT_ASSOCIATED");
} else {
error_msg_buf = (char *)malloc(error_msg_buf_size);
if (error_msg_buf != NULL) {
memset(error_msg_buf, 0, error_msg_buf_size);
_ret = _snprintf_s(error_msg_buf, error_msg_buf_size,
_TRUNCATE, "IP Helper Library GetAdaptersAddresses "
"function failed with error == %d", ret);
if (_ret != -1) {
JNU_ThrowByName(env, "java/lang/Error", error_msg_buf);
} else {
JNU_ThrowByName(env, "java/lang/Error",
"IP Helper Library GetAdaptersAddresses function failure");
}
char error_msg_buf[100];
int _sr;
_sr = _snprintf_s(error_msg_buf, sizeof(error_msg_buf),
_TRUNCATE, "IP Helper Library GetAdaptersAddresses "
"function failed with error == %d", ret);
if (_sr != -1) {
JNU_ThrowByName(env, "java/lang/Error", error_msg_buf);
} else {
JNU_ThrowByName(env, "java/lang/Error",
"IP Helper Library GetAdaptersAddresses function failed");
"IP Helper Library GetAdaptersAddresses function failure");
}
}
return -1;
@ -158,10 +147,6 @@ IP_ADAPTER_ADDRESSES *getAdapter (JNIEnv *env, jint index) {
DWORD flags, val;
IP_ADAPTER_ADDRESSES *adapterInfo, *ptr, *ret;
ULONG len;
char *error_msg_buf = NULL;
size_t error_msg_buf_size =
strlen("IP Helper Library GetAdaptersAddresses function failed with error == ") + 10;
int _ret = 0;
int try;
adapterInfo = (IP_ADAPTER_ADDRESSES *) malloc(BUFF_SIZE);
if (adapterInfo == NULL) {
@ -204,21 +189,16 @@ IP_ADAPTER_ADDRESSES *getAdapter (JNIEnv *env, jint index) {
"IP Helper Library GetAdaptersAddresses function failed "
"with ERROR_ADDRESS_NOT_ASSOCIATED");
} else {
error_msg_buf = (char *)malloc(error_msg_buf_size);
if (error_msg_buf != NULL) {
memset(error_msg_buf, 0, error_msg_buf_size);
_ret = _snprintf_s(error_msg_buf, error_msg_buf_size,
_TRUNCATE, "IP Helper Library GetAdaptersAddresses function failed "
"with error == %d", val);
if (_ret != -1) {
JNU_ThrowByName(env, "java/lang/Error", error_msg_buf);
} else {
JNU_ThrowByName(env, "java/lang/Error",
"IP Helper Library GetAdaptersAddresses function failure");
}
char error_msg_buf[100];
int _sr;
_sr = _snprintf_s(error_msg_buf, sizeof(error_msg_buf),
_TRUNCATE, "IP Helper Library GetAdaptersAddresses function failed "
"with error == %d", val);
if (_sr != -1) {
JNU_ThrowByName(env, "java/lang/Error", error_msg_buf);
} else {
JNU_ThrowByName(env, "java/lang/Error",
"IP Helper Library GetAdaptersAddresses function failed");
"IP Helper Library GetAdaptersAddresses function failure");
}
}
return NULL;