This is the mail archive of the java-patches@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Patch: FYI: fix PR 21941


I'm checking this in on the trunk and the 4.1 branch.

This fixes PR 21941.  We were throwing an NPE if an address could not
be resolved, but it is better to throw UnknownHostException.

Tom

Index: ChangeLog
from  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.

Index: gnu/java/net/natPlainSocketImplPosix.cc
===================================================================
--- gnu/java/net/natPlainSocketImplPosix.cc	(revision 113013)
+++ gnu/java/net/natPlainSocketImplPosix.cc	(working copy)
@@ -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 @@
 #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 @@
 
 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
Index: gnu/java/net/natPlainDatagramSocketImplPosix.cc
===================================================================
--- gnu/java/net/natPlainDatagramSocketImplPosix.cc	(revision 113013)
+++ gnu/java/net/natPlainDatagramSocketImplPosix.cc	(working copy)
@@ -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 @@
 #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 @@
   // 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;


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]