diff options
author | Elliott Hughes <enh@google.com> | 2011-02-24 19:34:23 -0800 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-02-24 19:34:23 -0800 |
commit | cb1ed37295a7c13781a599d02687884243526c37 (patch) | |
tree | 9b310547015a42d04fb3b6dc9a71b14b1d91e3be /luni | |
parent | 6433c7a0ea749a69f756d62576eeae8e7bd57215 (diff) | |
parent | f5309a39506c967feda8766feeba7f7271a458cb (diff) | |
download | libcore-cb1ed37295a7c13781a599d02687884243526c37.zip libcore-cb1ed37295a7c13781a599d02687884243526c37.tar.gz libcore-cb1ed37295a7c13781a599d02687884243526c37.tar.bz2 |
Merge "Fix more FindBugs warnings: RR_NOT_CHECKED." into dalvik-dev
Diffstat (limited to 'luni')
8 files changed, 25 insertions, 10 deletions
diff --git a/luni/src/main/java/java/util/zip/ZipInputStream.java b/luni/src/main/java/java/util/zip/ZipInputStream.java index 560a221..b62d305 100644 --- a/luni/src/main/java/java/util/zip/ZipInputStream.java +++ b/luni/src/main/java/java/util/zip/ZipInputStream.java @@ -195,7 +195,7 @@ public class ZipInputStream extends InflaterInputStream implements ZipConstants private void readAndVerifyDataDescriptor(int inB, int out) throws IOException { if (hasDD) { - in.read(hdrBuf, 0, EXTHDR); + Streams.readFully(in, hdrBuf, 0, EXTHDR); int sig = OSMemory.peekInt(hdrBuf, 0, ByteOrder.LITTLE_ENDIAN); if (sig != (int) EXTSIG) { throw new ZipException(String.format("unknown format (EXTSIG=%x)", sig)); diff --git a/luni/src/main/java/libcore/io/Streams.java b/luni/src/main/java/libcore/io/Streams.java index 6771369..351a240 100644 --- a/luni/src/main/java/libcore/io/Streams.java +++ b/luni/src/main/java/libcore/io/Streams.java @@ -30,7 +30,17 @@ public final class Streams { private Streams() {} /** - * Implements {@link java.io.DataInputStream#readFully(byte[], int, int)}. + * Fills 'dst' with bytes from 'in', throwing EOFException if insufficient bytes are available. + */ + public static void readFully(InputStream in, byte[] dst) throws IOException { + readFully(in, dst, 0, dst.length); + } + + /** + * Reads exactly 'byteCount' bytes from 'in' (into 'dst' at offset 'offset'), and throws + * EOFException if insufficient bytes are available. + * + * Used to implement {@link java.io.DataInputStream#readFully(byte[], int, int)}. */ public static void readFully(InputStream in, byte[] dst, int offset, int byteCount) throws IOException { if (byteCount == 0) { diff --git a/luni/src/main/java/org/apache/harmony/security/provider/cert/X509CertFactoryImpl.java b/luni/src/main/java/org/apache/harmony/security/provider/cert/X509CertFactoryImpl.java index da53201..4b3cd0e 100644 --- a/luni/src/main/java/org/apache/harmony/security/provider/cert/X509CertFactoryImpl.java +++ b/luni/src/main/java/org/apache/harmony/security/provider/cert/X509CertFactoryImpl.java @@ -36,6 +36,7 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.List; +import libcore.io.Streams; import org.apache.harmony.luni.util.Base64; import org.apache.harmony.security.asn1.ASN1Constants; import org.apache.harmony.security.asn1.BerInputStream; @@ -642,7 +643,7 @@ public class X509CertFactoryImpl extends CertificateFactorySpi { if (encoding.length < CERT_CACHE_SEED_LENGTH) { throw new CertificateException("Bad Certificate encoding"); } - inStream.read(encoding); + Streams.readFully(inStream, encoding); Certificate res = (Certificate) CERT_CACHE.get(hash, encoding); if (res != null) { return res; @@ -713,7 +714,7 @@ public class X509CertFactoryImpl extends CertificateFactorySpi { if (encoding.length < CRL_CACHE_SEED_LENGTH) { throw new CRLException("Bad CRL encoding"); } - inStream.read(encoding); + Streams.readFully(inStream, encoding); CRL res = (CRL) CRL_CACHE.get(hash, encoding); if (res != null) { return res; diff --git a/luni/src/main/java/org/apache/harmony/security/provider/crypto/SHA1PRNG_SecureRandomImpl.java b/luni/src/main/java/org/apache/harmony/security/provider/crypto/SHA1PRNG_SecureRandomImpl.java index cd9da59..2420fbe 100644 --- a/luni/src/main/java/org/apache/harmony/security/provider/crypto/SHA1PRNG_SecureRandomImpl.java +++ b/luni/src/main/java/org/apache/harmony/security/provider/crypto/SHA1PRNG_SecureRandomImpl.java @@ -24,6 +24,7 @@ import java.io.ObjectOutputStream; import java.io.Serializable; import java.security.InvalidParameterException; import java.security.SecureRandomSpi; +import libcore.io.Streams; import libcore.util.EmptyArray; /** @@ -523,7 +524,6 @@ public class SHA1PRNG_SecureRandomImpl extends SecureRandomSpi implements Serial } nextBIndex = ois.readInt(); - ois.read(nextBytes, nextBIndex, HASHBYTES_TO_USE - nextBIndex); + Streams.readFully(ois, nextBytes, nextBIndex, HASHBYTES_TO_USE - nextBIndex); } - } diff --git a/luni/src/main/java/org/apache/harmony/xnet/provider/jsse/CertificateRequest.java b/luni/src/main/java/org/apache/harmony/xnet/provider/jsse/CertificateRequest.java index 401fe39..f3be44c 100644 --- a/luni/src/main/java/org/apache/harmony/xnet/provider/jsse/CertificateRequest.java +++ b/luni/src/main/java/org/apache/harmony/xnet/provider/jsse/CertificateRequest.java @@ -21,6 +21,7 @@ import java.io.IOException; import java.security.cert.X509Certificate; import java.util.ArrayList; import javax.security.auth.x500.X500Principal; +import libcore.io.Streams; /** * @@ -88,7 +89,7 @@ public class CertificateRequest extends Message { public CertificateRequest(HandshakeIODataStream in, int length) throws IOException { int size = in.readUint8(); certificate_types = new byte[size]; - in.read(certificate_types, 0, size); + Streams.readFully(in, certificate_types); size = in.readUint16(); int totalPrincipalsLength = 0; int principalLength = 0; diff --git a/luni/src/main/java/org/apache/harmony/xnet/provider/jsse/ClientHello.java b/luni/src/main/java/org/apache/harmony/xnet/provider/jsse/ClientHello.java index 5fcbba5..1bded5d 100644 --- a/luni/src/main/java/org/apache/harmony/xnet/provider/jsse/ClientHello.java +++ b/luni/src/main/java/org/apache/harmony/xnet/provider/jsse/ClientHello.java @@ -20,6 +20,7 @@ package org.apache.harmony.xnet.provider.jsse; import java.io.IOException; import java.security.SecureRandom; import java.util.Arrays; +import libcore.io.Streams; import libcore.util.EmptyArray; /** @@ -88,7 +89,7 @@ public class ClientHello extends Message { client_version = new byte[2]; client_version[0] = (byte) in.readUint8(); client_version[1] = (byte) in.readUint8(); - in.read(random, 0, 32); + Streams.readFully(in, random); int size = in.read(); session_id = new byte[size]; in.read(session_id, 0, size); diff --git a/luni/src/main/java/org/apache/harmony/xnet/provider/jsse/ClientKeyExchange.java b/luni/src/main/java/org/apache/harmony/xnet/provider/jsse/ClientKeyExchange.java index bfe2bd0..2bae8d0 100644 --- a/luni/src/main/java/org/apache/harmony/xnet/provider/jsse/ClientKeyExchange.java +++ b/luni/src/main/java/org/apache/harmony/xnet/provider/jsse/ClientKeyExchange.java @@ -19,6 +19,7 @@ package org.apache.harmony.xnet.provider.jsse; import java.io.IOException; import java.math.BigInteger; +import libcore.io.Streams; import libcore.util.EmptyArray; /** @@ -109,7 +110,7 @@ public class ClientKeyExchange extends Message { this.length = 2 + size; } exchange_keys = new byte[size]; - in.read(exchange_keys, 0, size); + Streams.readFully(in, exchange_keys); if (this.length != length) { fatalAlert(AlertProtocol.DECODE_ERROR, "DECODE ERROR: incorrect ClientKeyExchange"); } diff --git a/luni/src/main/java/org/apache/harmony/xnet/provider/jsse/ServerHello.java b/luni/src/main/java/org/apache/harmony/xnet/provider/jsse/ServerHello.java index 1fa848a..00a25f8 100644 --- a/luni/src/main/java/org/apache/harmony/xnet/provider/jsse/ServerHello.java +++ b/luni/src/main/java/org/apache/harmony/xnet/provider/jsse/ServerHello.java @@ -19,6 +19,7 @@ package org.apache.harmony.xnet.provider.jsse; import java.io.IOException; import java.security.SecureRandom; +import libcore.io.Streams; /** * @@ -86,7 +87,7 @@ public class ServerHello extends Message { server_version[0] = (byte) in.read(); server_version[1] = (byte) in.read(); - in.read(random, 0, 32); + Streams.readFully(in, random); int size = in.readUint8(); session_id = new byte[size]; in.read(session_id, 0, size); |