summaryrefslogtreecommitdiff
path: root/libjava
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2006-04-20 15:46:40 +0000
committerTom Tromey <tromey@gcc.gnu.org>2006-04-20 15:46:40 +0000
commit45c792f50b74194c1c3b1038929c1656971bea1b (patch)
tree6466a6a7c75e3c84b76b1f5c41080183ef02f6c6 /libjava
parent455f78d9c657552de3023f9ffbb3fa791f1cf62c (diff)
downloadgcc-45c792f50b74194c1c3b1038929c1656971bea1b.tar.gz
re PR libgcj/21941 (NPE in Socket.connect())
PR libgcj/21941: * gnu/java/net/natPlainDatagramSocketImplPosix.cc (send): Throw UnknownHostException if needed. * gnu/java/net/natPlainSocketImplPosix.cc (connect): Throw UnknownHostException if needed. From-SVN: r113118
Diffstat (limited to 'libjava')
-rw-r--r--libjava/ChangeLog8
-rw-r--r--libjava/gnu/java/net/natPlainDatagramSocketImplPosix.cc9
-rw-r--r--libjava/gnu/java/net/natPlainSocketImplPosix.cc8
3 files changed, 21 insertions, 4 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 30b03061db3..215ea00f808 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,11 @@
+2006-04-20 Tom Tromey <tromey@redhat.com>
+
+ PR libgcj/21941:
+ * gnu/java/net/natPlainDatagramSocketImplPosix.cc (send): Throw
+ UnknownHostException if needed.
+ * gnu/java/net/natPlainSocketImplPosix.cc (connect): Throw
+ UnknownHostException if needed.
+
2006-04-19 Tom Tromey <tromey@redhat.com>
* Makefile.in: Rebuilt.
diff --git a/libjava/gnu/java/net/natPlainDatagramSocketImplPosix.cc b/libjava/gnu/java/net/natPlainDatagramSocketImplPosix.cc
index ada5fd160c5..96b374db5f5 100644
--- a/libjava/gnu/java/net/natPlainDatagramSocketImplPosix.cc
+++ b/libjava/gnu/java/net/natPlainDatagramSocketImplPosix.cc
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003, 2005 Free Software Foundation
+/* Copyright (C) 2003, 2005, 2006 Free Software Foundation
This file is part of libgcj.
@@ -38,6 +38,7 @@ details. */
#include <java/lang/Object.h>
#include <java/lang/Boolean.h>
#include <java/lang/Integer.h>
+#include <java/net/UnknownHostException.h>
union SockAddr
{
@@ -291,7 +292,11 @@ gnu::java::net::PlainDatagramSocketImpl::send (::java::net::DatagramPacket *p)
// FIXME: Deal with Multicast and if the socket is connected.
jint rport = p->getPort();
union SockAddr u;
- jbyteArray haddress = p->getAddress()->addr;
+ ::java::net::InetAddress *host = p->getAddress();
+ if (! host)
+ throw new ::java::net::UnknownHostException(p->toString());
+
+ jbyteArray haddress = host->addr;
jbyte *bytes = elements (haddress);
int len = haddress->length;
struct sockaddr *ptr = (struct sockaddr *) &u.address;
diff --git a/libjava/gnu/java/net/natPlainSocketImplPosix.cc b/libjava/gnu/java/net/natPlainSocketImplPosix.cc
index be9437cd7db..28707db4de8 100644
--- a/libjava/gnu/java/net/natPlainSocketImplPosix.cc
+++ b/libjava/gnu/java/net/natPlainSocketImplPosix.cc
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003, 2004, 2005 Free Software Foundation
+/* Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation
This file is part of libgcj.
@@ -51,6 +51,7 @@ details. */
#include <java/lang/NullPointerException.h>
#include <java/lang/ArrayIndexOutOfBoundsException.h>
#include <java/lang/IllegalArgumentException.h>
+#include <java/net/UnknownHostException.h>
union SockAddr
{
@@ -136,10 +137,13 @@ gnu::java::net::PlainSocketImpl::bind (::java::net::InetAddress *host, jint lpor
void
gnu::java::net::PlainSocketImpl::connect (::java::net::SocketAddress *addr,
- jint timeout)
+ jint timeout)
{
::java::net::InetSocketAddress *tmp = (::java::net::InetSocketAddress*) addr;
::java::net::InetAddress *host = tmp->getAddress();
+ if (! host)
+ throw new ::java::net::UnknownHostException(tmp->toString());
+
jint rport = tmp->getPort();
// Set the SocketImpl's address and port fields before we try to