From 4dc2f71b907c1dd12f8d54f93fbf34278db1ec0f Mon Sep 17 00:00:00 2001 From: David Daney Date: Thu, 3 Feb 2005 17:44:20 +0000 Subject: InetAddress.java (InetAddress): Make a private copy of the address. 2005-02-02 David Daney * 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 --- libjava/java/net/Inet6Address.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'libjava/java/net/Inet6Address.java') diff --git a/libjava/java/net/Inet6Address.java b/libjava/java/net/Inet6Address.java index 0c1d60e8edf..69d266a4c17 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); } /** -- cgit v1.2.3