From c53ca291e21761f1de5417ef596afba395a7f5d1 Mon Sep 17 00:00:00 2001 From: Abhishek Koneru Date: Wed, 6 Jun 2012 16:55:54 -0400 Subject: Fixes for NULL_RETURNS Coverity Issues - Part 2 --- .../src/netscape/security/extensions/NSCertTypeExtension.java | 8 ++++++-- base/util/src/netscape/security/util/DerInputBuffer.java | 4 ++-- base/util/src/netscape/security/util/DerInputStream.java | 3 ++- .../netscape/security/x509/IssuingDistributionPointExtension.java | 3 +++ 4 files changed, 13 insertions(+), 5 deletions(-) (limited to 'base/util/src/netscape') diff --git a/base/util/src/netscape/security/extensions/NSCertTypeExtension.java b/base/util/src/netscape/security/extensions/NSCertTypeExtension.java index 22197be9b..1a240f1ce 100644 --- a/base/util/src/netscape/security/extensions/NSCertTypeExtension.java +++ b/base/util/src/netscape/security/extensions/NSCertTypeExtension.java @@ -24,6 +24,7 @@ import java.security.cert.CertificateException; import java.util.Enumeration; import java.util.Vector; +import netscape.security.util.BitArray; import netscape.security.util.DerOutputStream; import netscape.security.util.DerValue; import netscape.security.util.ObjectIdentifier; @@ -241,8 +242,11 @@ public class NSCertTypeExtension extends Extension implements CertAttrSet { this.extensionValue = extValue; DerValue val = new DerValue(extValue); - - this.mBitString = val.getUnalignedBitString().toByteArray(); + BitArray bitArray = val.getUnalignedBitString(); + if (bitArray == null) { + throw new IOException("Invalid Encoded DER Value"); + } + this.mBitString = bitArray.toByteArray(); } /** diff --git a/base/util/src/netscape/security/util/DerInputBuffer.java b/base/util/src/netscape/security/util/DerInputBuffer.java index 429bf4d6a..e1cdcf6fb 100644 --- a/base/util/src/netscape/security/util/DerInputBuffer.java +++ b/base/util/src/netscape/security/util/DerInputBuffer.java @@ -52,10 +52,10 @@ class DerInputBuffer extends ByteArrayInputStream implements Cloneable { } } - byte[] toByteArray() { + byte[] toByteArray() throws IOException { int len = available(); if (len <= 0) - return null; + throw new IOException("No Buffer Space Available."); byte[] retval = new byte[len]; System.arraycopy(buf, pos, retval, 0, len); diff --git a/base/util/src/netscape/security/util/DerInputStream.java b/base/util/src/netscape/security/util/DerInputStream.java index b8c1c8c93..ff1c54ba2 100644 --- a/base/util/src/netscape/security/util/DerInputStream.java +++ b/base/util/src/netscape/security/util/DerInputStream.java @@ -112,8 +112,9 @@ public class DerInputStream { /** * Return what has been written to this DerInputStream * as a byte array. Useful for debugging. + * @throws IOException */ - public byte[] toByteArray() { + public byte[] toByteArray() throws IOException { return buffer.toByteArray(); } diff --git a/base/util/src/netscape/security/x509/IssuingDistributionPointExtension.java b/base/util/src/netscape/security/x509/IssuingDistributionPointExtension.java index 67ace692e..0f8c8835c 100644 --- a/base/util/src/netscape/security/x509/IssuingDistributionPointExtension.java +++ b/base/util/src/netscape/security/x509/IssuingDistributionPointExtension.java @@ -195,6 +195,9 @@ public class IssuingDistributionPointExtension extends Extension opt.resetTag(DerValue.tag_BitString); try { BitArray reasons = opt.getUnalignedBitString(); + if (reasons == null) { + throw new IOException("Unable to get the unaligned bit string."); + } issuingDistributionPoint.setOnlySomeReasons(reasons); @SuppressWarnings("unused") -- cgit