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/src/com/netscape/cmscore/usrgrp | |
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/src/com/netscape/cmscore/usrgrp')
-rw-r--r-- | base/common/src/com/netscape/cmscore/usrgrp/UGSubsystem.java | 40 |
1 files changed, 30 insertions, 10 deletions
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++) { |