Commit 45c792f5 by Tom Tromey Committed by Tom Tromey

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
parent 455f78d9
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> 2006-04-19 Tom Tromey <tromey@redhat.com>
* Makefile.in: Rebuilt. * Makefile.in: Rebuilt.
......
/* Copyright (C) 2003, 2005 Free Software Foundation /* Copyright (C) 2003, 2005, 2006 Free Software Foundation
This file is part of libgcj. This file is part of libgcj.
...@@ -38,6 +38,7 @@ details. */ ...@@ -38,6 +38,7 @@ details. */
#include <java/lang/Object.h> #include <java/lang/Object.h>
#include <java/lang/Boolean.h> #include <java/lang/Boolean.h>
#include <java/lang/Integer.h> #include <java/lang/Integer.h>
#include <java/net/UnknownHostException.h>
union SockAddr union SockAddr
{ {
...@@ -291,7 +292,11 @@ gnu::java::net::PlainDatagramSocketImpl::send (::java::net::DatagramPacket *p) ...@@ -291,7 +292,11 @@ gnu::java::net::PlainDatagramSocketImpl::send (::java::net::DatagramPacket *p)
// FIXME: Deal with Multicast and if the socket is connected. // FIXME: Deal with Multicast and if the socket is connected.
jint rport = p->getPort(); jint rport = p->getPort();
union SockAddr u; 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); jbyte *bytes = elements (haddress);
int len = haddress->length; int len = haddress->length;
struct sockaddr *ptr = (struct sockaddr *) &u.address; struct sockaddr *ptr = (struct sockaddr *) &u.address;
......
/* Copyright (C) 2003, 2004, 2005 Free Software Foundation /* Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation
This file is part of libgcj. This file is part of libgcj.
...@@ -51,6 +51,7 @@ details. */ ...@@ -51,6 +51,7 @@ details. */
#include <java/lang/NullPointerException.h> #include <java/lang/NullPointerException.h>
#include <java/lang/ArrayIndexOutOfBoundsException.h> #include <java/lang/ArrayIndexOutOfBoundsException.h>
#include <java/lang/IllegalArgumentException.h> #include <java/lang/IllegalArgumentException.h>
#include <java/net/UnknownHostException.h>
union SockAddr union SockAddr
{ {
...@@ -136,10 +137,13 @@ gnu::java::net::PlainSocketImpl::bind (::java::net::InetAddress *host, jint lpor ...@@ -136,10 +137,13 @@ gnu::java::net::PlainSocketImpl::bind (::java::net::InetAddress *host, jint lpor
void void
gnu::java::net::PlainSocketImpl::connect (::java::net::SocketAddress *addr, gnu::java::net::PlainSocketImpl::connect (::java::net::SocketAddress *addr,
jint timeout) jint timeout)
{ {
::java::net::InetSocketAddress *tmp = (::java::net::InetSocketAddress*) addr; ::java::net::InetSocketAddress *tmp = (::java::net::InetSocketAddress*) addr;
::java::net::InetAddress *host = tmp->getAddress(); ::java::net::InetAddress *host = tmp->getAddress();
if (! host)
throw new ::java::net::UnknownHostException(tmp->toString());
jint rport = tmp->getPort(); jint rport = tmp->getPort();
// Set the SocketImpl's address and port fields before we try to // Set the SocketImpl's address and port fields before we try to
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment