diff options
author | Abhishek Koneru <akoneru@redhat.com> | 2012-06-15 10:28:40 -0400 |
---|---|---|
committer | Endi Sukma Dewata <edewata@redhat.com> | 2012-06-20 09:33:31 -0500 |
commit | d5d0b91bc5597eec19520cee74569e9ddacc2090 (patch) | |
tree | 414a43625acd2e3f44c39cdd87912e5c562930e7 /base/common | |
parent | 4880d86856d183d4ba3fb0291519353ac238af5d (diff) | |
download | pki-d5d0b91bc5597eec19520cee74569e9ddacc2090.tar.gz pki-d5d0b91bc5597eec19520cee74569e9ddacc2090.tar.xz pki-d5d0b91bc5597eec19520cee74569e9ddacc2090.zip |
Fixes for Coverity Issues of type Null Returns - Part 3
Diffstat (limited to 'base/common')
5 files changed, 51 insertions, 22 deletions
diff --git a/base/common/src/com/netscape/certsrv/usrgrp/IUGSubsystem.java b/base/common/src/com/netscape/certsrv/usrgrp/IUGSubsystem.java index c101187c4..bbd051324 100644 --- a/base/common/src/com/netscape/certsrv/usrgrp/IUGSubsystem.java +++ b/base/common/src/com/netscape/certsrv/usrgrp/IUGSubsystem.java @@ -120,16 +120,18 @@ public interface IUGSubsystem extends ISubsystem, IUsrGrp { * * @param filter the search filter * @return a list of groups that match the given search filter + * @throws EUsrGrpException */ - public Enumeration<IGroup> findGroups(String filter); + public Enumeration<IGroup> findGroups(String filter) throws EUsrGrpException; /** * Find a group for the given name * * @param name the given name * @return a group that matched the given name + * @throws EUsrGrpException */ - public IGroup findGroup(String name); + public IGroup findGroup(String name) throws EUsrGrpException; /** * List groups. This method is more efficient than findGroups because diff --git a/base/common/src/com/netscape/cmscore/profile/ProfileSubsystem.java b/base/common/src/com/netscape/cmscore/profile/ProfileSubsystem.java index 7da1cc332..45807d6e9 100644 --- a/base/common/src/com/netscape/cmscore/profile/ProfileSubsystem.java +++ b/base/common/src/com/netscape/cmscore/profile/ProfileSubsystem.java @@ -97,7 +97,7 @@ public class ProfileSubsystem implements IProfileSubsystem { String classid = subStore.getString(PROP_CLASS_ID); IPluginInfo info = registry.getPluginInfo("profile", classid); if (info == null) { - throw new EBaseException("No plugins for type : profile with id " + classid); + throw new EBaseException("No plugins for type : profile, with id " + classid); } String configPath = subStore.getString(PROP_CONFIG); diff --git a/base/common/src/com/netscape/cmscore/security/KeyCertUtil.java b/base/common/src/com/netscape/cmscore/security/KeyCertUtil.java index 844052e4b..80ad36c2d 100644 --- a/base/common/src/com/netscape/cmscore/security/KeyCertUtil.java +++ b/base/common/src/com/netscape/cmscore/security/KeyCertUtil.java @@ -1056,8 +1056,11 @@ public class KeyCertUtil { String dn = "ou=certificateRepository,ou=ca," + baseDN; BigInteger serialno = null; LDAPEntry entry = conn.read(dn); - String serialnoStr = (String) entry.getAttribute( - "serialno").getStringValues().nextElement(); + LDAPAttribute serialNo = entry.getAttribute("serialno"); + if (serialNo == null) { + throw new LDAPException("No value for attribute serial number in LDAP entry " + entry.getDN()); + } + String serialnoStr = (String) serialNo.getStringValues().nextElement(); serialno = BigIntegerMapper.BigIntegerFromDB(serialnoStr); LDAPAttribute attr = new LDAPAttribute("serialno"); diff --git a/base/common/src/com/netscape/cmscore/usrgrp/UGSubsystem.java b/base/common/src/com/netscape/cmscore/usrgrp/UGSubsystem.java index 95e213541..20ad26524 100644 --- a/base/common/src/com/netscape/cmscore/usrgrp/UGSubsystem.java +++ b/base/common/src/com/netscape/cmscore/usrgrp/UGSubsystem.java @@ -416,8 +416,11 @@ public final class UGSubsystem implements IUGSubsystem { * @return the User entity. */ protected IUser lbuildUser(LDAPEntry entry) throws EUsrGrpException { - IUser id = createUser(this, (String) - entry.getAttribute("uid").getStringValues().nextElement()); + LDAPAttribute uid = entry.getAttribute("uid"); + if (uid == null) { + throw new EUsrGrpException("No Attribute UID in LDAP Entry " + entry.getDN()); + } + IUser id = createUser(this, (String) uid.getStringValues().nextElement()); LDAPAttribute cnAttr = entry.getAttribute("cn"); if (cnAttr != null) { @@ -472,8 +475,11 @@ public final class UGSubsystem implements IUGSubsystem { * @return the User entity. */ protected IUser buildUser(LDAPEntry entry) throws EUsrGrpException { - IUser id = createUser(this, (String) - entry.getAttribute("uid").getStringValues().nextElement()); + LDAPAttribute uid = entry.getAttribute("uid"); + if (uid == null) { + throw new EUsrGrpException("No Attribute UID in LDAP Entry " + entry.getDN()); + } + IUser id = createUser(this, (String) uid.getStringValues().nextElement()); LDAPAttribute cnAttr = entry.getAttribute("cn"); if (cnAttr != null) { @@ -1119,7 +1125,7 @@ public final class UGSubsystem implements IUGSubsystem { } } - protected Enumeration<IGroup> buildGroups(LDAPSearchResults res) { + protected Enumeration<IGroup> buildGroups(LDAPSearchResults res) throws EUsrGrpException { Vector<IGroup> v = new Vector<IGroup>(); while (res.hasMoreElements()) { @@ -1132,8 +1138,9 @@ public final class UGSubsystem implements IUGSubsystem { /** * Finds groups. + * @throws EUsrGrpException */ - public Enumeration<IGroup> findGroups(String filter) { + public Enumeration<IGroup> findGroups(String filter) throws EUsrGrpException { if (filter == null) { return null; } @@ -1160,7 +1167,7 @@ public final class UGSubsystem implements IUGSubsystem { } } - public IGroup findGroup(String filter) { + public IGroup findGroup(String filter) throws EUsrGrpException { Enumeration<IGroup> groups = findGroups(filter); if (groups == null || !groups.hasMoreElements()) @@ -1205,9 +1212,14 @@ public final class UGSubsystem implements IUGSubsystem { /** * builds an instance of a Group entry + * @throws EUsrGrpException */ - protected IGroup buildGroup(LDAPEntry entry) { - String groupName = (String) entry.getAttribute("cn").getStringValues().nextElement(); + protected IGroup buildGroup(LDAPEntry entry) throws EUsrGrpException { + LDAPAttribute cn = entry.getAttribute("cn"); + if (cn == null) { + throw new EUsrGrpException("Cannot build group. No Attribute cn in LDAP Entry " + entry.getDN()); + } + String groupName = (String) cn.getStringValues().nextElement(); IGroup grp = createGroup(this, groupName); LDAPAttribute grpDesc = entry.getAttribute("description"); @@ -1357,7 +1369,9 @@ public final class UGSubsystem implements IUGSubsystem { public boolean isMemberOf(String userid, String groupname) { try { IUser user = getUser(userid); - return isMemberOfLdapGroup(user.getUserDN(), groupname); + if (user != null) { + return isMemberOfLdapGroup(user.getUserDN(), groupname); + } } catch (Exception e) { /* do nothing */ } @@ -1630,6 +1644,12 @@ public final class UGSubsystem implements IUGSubsystem { protected boolean isMatched(String dn1, String dn2) { String rdn1[] = LDAPDN.explodeDN(dn1, false); String rdn2[] = LDAPDN.explodeDN(dn2, false); + if (rdn1 == null && rdn2 == null) { + return true; + } + if (rdn1 == null || rdn2 == null) { + return false; + } if (rdn1.length == rdn2.length) { for (int j = 0; j < rdn1.length; j++) { diff --git a/base/common/test/com/netscape/cmscore/request/RequestTest.java b/base/common/test/com/netscape/cmscore/request/RequestTest.java index 7a655fd08..1de96a203 100644 --- a/base/common/test/com/netscape/cmscore/request/RequestTest.java +++ b/base/common/test/com/netscape/cmscore/request/RequestTest.java @@ -1,6 +1,5 @@ package com.netscape.cmscore.request; -import java.io.IOException; import java.math.BigInteger; import java.security.cert.CRLException; import java.security.cert.CertificateEncodingException; @@ -237,7 +236,7 @@ public class RequestTest extends CMSBaseTestCase { assertFalse(request.setExtData("key", (Integer) null)); } - public void testGetSetExtDataIntegerArray() { + public void testGetSetExtDataIntegerArray() throws Exception { Integer[] data = new Integer[] { Integer.valueOf(5), Integer.valueOf(23), @@ -245,6 +244,7 @@ public class RequestTest extends CMSBaseTestCase { }; assertTrue(request.setExtData("topkey1", data)); Integer[] retval = request.getExtDataInIntegerArray("topkey1"); + assertNotNull(retval); assertEquals(3, retval.length); assertEquals(data[0], retval[0]); assertEquals(data[1], retval[1]); @@ -276,7 +276,7 @@ public class RequestTest extends CMSBaseTestCase { assertFalse(request.setExtData("key", (BigInteger) null)); } - public void testGetSetExtDataBigIntegerArray() { + public void testGetSetExtDataBigIntegerArray() throws Exception { BigInteger[] data = new BigInteger[] { new BigInteger("111111111"), new BigInteger("222222222"), @@ -284,6 +284,7 @@ public class RequestTest extends CMSBaseTestCase { }; assertTrue(request.setExtData("topkey1", data)); BigInteger[] retval = request.getExtDataInBigIntegerArray("topkey1"); + assertNotNull(retval); assertEquals(3, retval.length); assertEquals(data[0], retval[0]); assertEquals(data[1], retval[1]); @@ -340,7 +341,7 @@ public class RequestTest extends CMSBaseTestCase { assertFalse(request.setExtData("key", (X509CertImpl) null)); } - public void testGetSetCertArray() throws CertificateException { + public void testGetSetCertArray() throws Exception { // this test is also pretty weak, but fortunately relies on the // building blocks. X509CertImpl[] vals = new X509CertImpl[] { @@ -354,6 +355,7 @@ public class RequestTest extends CMSBaseTestCase { assertFalse(cmsStub.aToBCalled); X509CertImpl[] retval = request.getExtDataInCertArray("key"); + assertNotNull(retval); assertTrue(cmsStub.aToBCalled); assertEquals(2, retval.length); @@ -363,7 +365,7 @@ public class RequestTest extends CMSBaseTestCase { assertFalse(request.setExtData("key", (X509CertImpl[]) null)); } - public void testGetSetStringArray() { + public void testGetSetStringArray() throws Exception { String[] value = new String[] { "blue", "green", "red", "orange" }; assertTrue(request.setExtData("key", value)); @@ -380,6 +382,7 @@ public class RequestTest extends CMSBaseTestCase { assertEquals("orange", hashValue.get("3")); String[] retval = request.getExtDataInStringArray("key"); + assertNotNull(retval); assertEquals(4, retval.length); assertEquals("blue", retval[0]); assertEquals("green", retval[1]); @@ -394,6 +397,7 @@ public class RequestTest extends CMSBaseTestCase { request.setExtData("kevin", hashValue); retval = request.getExtDataInStringArray("kevin"); + assertNotNull(retval); assertEquals(7, retval.length); assertEquals("square", retval[0]); assertNull(retval[1]); @@ -536,7 +540,7 @@ public class RequestTest extends CMSBaseTestCase { assertFalse(request.setExtData("key", (RevokedCertImpl[]) null)); } - public void testGetSetCertExts() throws IOException { + public void testGetSetCertExts() throws Exception { CertificateExtensions exts = new CertificateExtensions(); BasicConstraintsExtension ext = new BasicConstraintsExtension(false, 1); @@ -557,7 +561,7 @@ public class RequestTest extends CMSBaseTestCase { assertFalse(request.setExtData("key", (CertificateExtensions) null)); } - public void testGetSetCertSubjectName() throws IOException { + public void testGetSetCertSubjectName() throws Exception { CertificateSubjectName name = new CertificateSubjectName( new X500Name("cn=kevin")); assertTrue(request.setExtData("key", name)); |