From f8a3deff44a8084838fa8e7574affd15b983441e Mon Sep 17 00:00:00 2001 From: michaelm Date: Tue, 30 Aug 2011 14:40:05 +0100 Subject: [PATCH] 7084560: Crash in net.dll Reviewed-by: chegar Contributed-by: luchsh@linux.vnet.ibm.com --- src/windows/native/java/net/NetworkInterface.c | 3 +-- src/windows/native/java/net/NetworkInterface_winXP.c | 6 ++---- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/windows/native/java/net/NetworkInterface.c b/src/windows/native/java/net/NetworkInterface.c index fa5dfc13f..d6b048869 100644 --- a/src/windows/native/java/net/NetworkInterface.c +++ b/src/windows/native/java/net/NetworkInterface.c @@ -504,8 +504,7 @@ jobject createNetworkInterface */ if (netaddrCount < 0) { netaddrCount = enumAddresses_win(env, ifs, &netaddrP); - if ((*env)->ExceptionOccurred(env)) { - free_netaddr(netaddrP); + if (netaddrCount == -1) { return NULL; } } diff --git a/src/windows/native/java/net/NetworkInterface_winXP.c b/src/windows/native/java/net/NetworkInterface_winXP.c index ecfab4967..9b624cd55 100644 --- a/src/windows/native/java/net/NetworkInterface_winXP.c +++ b/src/windows/native/java/net/NetworkInterface_winXP.c @@ -194,8 +194,7 @@ int getAllInterfacesAndAddresses (JNIEnv *env, netif **netifPP) while (curr != NULL) { netaddr *netaddrP; ret = enumAddresses_win(env, curr, &netaddrP); - if ((*env)->ExceptionOccurred(env)) { - free_netaddr(netaddrP); + if (ret == -1) { return -1; } curr->addrs = netaddrP; @@ -449,8 +448,7 @@ static jobject createNetworkInterfaceXP(JNIEnv *env, netif *ifs) */ if (netaddrCount < 0) { netaddrCount = enumAddresses_win(env, ifs, &netaddrP); - if ((*env)->ExceptionOccurred(env)) { - free_netaddr(netaddrP); + if (netaddrCount == -1) { return NULL; } } -- GitLab