aboutsummaryrefslogtreecommitdiff
path: root/libjava
diff options
context:
space:
mode:
authorDavid Daney <ddaney@avtrex.com>2005-02-03 17:44:20 +0000
committerDavid Daney <daney@gcc.gnu.org>2005-02-03 17:44:20 +0000
commit4dc2f71b907c1dd12f8d54f93fbf34278db1ec0f (patch)
tree9b69152f633ffbb0192b4b1ab1aa7f6cd64f6d8e /libjava
parent773af5d0df2ac4ce1ba2764bfe70059ba81d64bb (diff)
downloadgcc-4dc2f71b907c1dd12f8d54f93fbf34278db1ec0f.zip
gcc-4dc2f71b907c1dd12f8d54f93fbf34278db1ec0f.tar.gz
gcc-4dc2f71b907c1dd12f8d54f93fbf34278db1ec0f.tar.bz2
InetAddress.java (InetAddress): Make a private copy of the address.
2005-02-02 David Daney <ddaney@avtrex.com> * java/net/InetAddress.java (InetAddress): Make a private copy of the address. * java/net/Inet4Address.java (getAddress): Return a copy of the address. * java/net/Inet6Address.java (Inet6Address): Use private copy of the address (getAddress): Return a copy of the address. (equals): Rewrote. From-SVN: r94664
Diffstat (limited to 'libjava')
-rw-r--r--libjava/ChangeLog11
-rw-r--r--libjava/java/net/Inet4Address.java2
-rw-r--r--libjava/java/net/Inet6Address.java12
-rw-r--r--libjava/java/net/InetAddress.java2
4 files changed, 20 insertions, 7 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index b7d1c39..1ee4076 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,14 @@
+2005-02-02 David Daney <ddaney@avtrex.com>
+
+ * java/net/InetAddress.java (InetAddress): Make a private copy of
+ the address.
+ * java/net/Inet4Address.java (getAddress): Return a copy of the
+ address.
+ * java/net/Inet6Address.java (Inet6Address): Use private copy of
+ the address
+ (getAddress): Return a copy of the address.
+ (equals): Rewrote.
+
2005-02-02 Tom Tromey <tromey@redhat.com>
* Makefile.in: Rebuilt.
diff --git a/libjava/java/net/Inet4Address.java b/libjava/java/net/Inet4Address.java
index 917e9e3..b654ce6 100644
--- a/libjava/java/net/Inet4Address.java
+++ b/libjava/java/net/Inet4Address.java
@@ -207,7 +207,7 @@ public final class Inet4Address extends InetAddress
*/
public byte[] getAddress()
{
- return addr;
+ return (byte[]) addr.clone();
}
/**
diff --git a/libjava/java/net/Inet6Address.java b/libjava/java/net/Inet6Address.java
index 0c1d60e..69d266a 100644
--- a/libjava/java/net/Inet6Address.java
+++ b/libjava/java/net/Inet6Address.java
@@ -65,7 +65,8 @@ public final class Inet6Address extends InetAddress
Inet6Address(byte[] addr, String host)
{
super(addr, host);
- this.ipaddress = addr;
+ // Super constructor clones the addr. Get a reference to the clone.
+ this.ipaddress = this.addr;
}
/**
@@ -194,7 +195,7 @@ public final class Inet6Address extends InetAddress
*/
public byte[] getAddress()
{
- return ipaddress;
+ return (byte[]) ipaddress.clone();
}
/**
@@ -233,9 +234,10 @@ public final class Inet6Address extends InetAddress
if (! (obj instanceof Inet6Address))
return false;
- Inet6Address tmp = (Inet6Address) obj;
-
- return super.equals(tmp) && this.ipaddress == tmp.ipaddress;
+ // this.ipaddress is never set in this class except to
+ // the value of the super class' addr. The super classes
+ // equals(Object) will do the compare.
+ return super.equals(obj);
}
/**
diff --git a/libjava/java/net/InetAddress.java b/libjava/java/net/InetAddress.java
index cfcf22b..5a3ec47 100644
--- a/libjava/java/net/InetAddress.java
+++ b/libjava/java/net/InetAddress.java
@@ -123,7 +123,7 @@ public class InetAddress implements Serializable
*/
InetAddress(byte[] ipaddr, String hostname)
{
- addr = ipaddr;
+ addr = (null == ipaddr) ? null : (byte[]) ipaddr.clone();
hostName = hostname;
if (ipaddr != null)