[ 
https://issues.apache.org/jira/browse/RANGER-847?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15149082#comment-15149082
 ] 

Bolke de Bruin commented on RANGER-847:
---------------------------------------

I will pick this up, but I wonder: only the last one was introduced by me (not 
checking for null) the rest was already in place. Are these scans new?

> Fix code scan issues
> --------------------
>
>                 Key: RANGER-847
>                 URL: https://issues.apache.org/jira/browse/RANGER-847
>             Project: Ranger
>          Issue Type: Bug
>    Affects Versions: 0.6.0
>            Reporter: Velmurugan Periasamy
>            Assignee: Bolke de Bruin
>             Fix For: 0.6.0
>
>
> Coverity scan reports below issues. Need to be fixed.
> {noformat} 
>  CID 135584:    (FB.DM_DEFAULT_ENCODING)
> /ugsync/src/main/java/org/apache/ranger/unixusersync/process/UnixUserGroupBuilder.java:
>  179 in 
> org.apache.ranger.unixusersync.process.UnixUserGroupBuilder.buildUnixUserList(java.lang.String)()
> /ugsync/src/main/java/org/apache/ranger/unixusersync/process/UnixUserGroupBuilder.java:
>  271 in 
> org.apache.ranger.unixusersync.process.UnixUserGroupBuilder.buildUnixUserList(java.lang.String)()
> /ugsync/src/main/java/org/apache/ranger/unixusersync/process/UnixUserGroupBuilder.java:
>  179 in 
> org.apache.ranger.unixusersync.process.UnixUserGroupBuilder.buildUnixUserList(java.lang.String)()
> 173           private void buildUnixUserList(String command) throws Throwable 
> {
> 174                   BufferedReader reader = null;
> 175    
> 176                   if (!useNss) {
> 177                           File file = new File(UNIX_USER_PASSWORD_FILE);
> 178                           passwordFileModifiedAt = file.lastModified();
>      CID 135584:    (FB.DM_DEFAULT_ENCODING)
>      Found reliance on default encoding: new java.io.FileReader(File).
> 179                           reader = new BufferedReader(new 
> FileReader(file)) ;
> 180                   } else {
> 181                           Process process = Runtime.getRuntime().exec(
> 182                                           new String[]{"bash", "-c", 
> command});
> 183    
> 184                           reader = new BufferedReader(new 
> InputStreamReader(process.getInputStream()));
> /ugsync/src/main/java/org/apache/ranger/unixusersync/process/UnixUserGroupBuilder.java:
>  271 in 
> org.apache.ranger.unixusersync.process.UnixUserGroupBuilder.buildUnixUserList(java.lang.String)()
> 265    
> 266                                   // "id" is same across Linux / BSD / 
> MacOSX
> 267                                   // gids are used as id might return 
> groups with spaces, ie "domain users"
> 268                                   Process process = 
> Runtime.getRuntime().exec(
> 269                                                   new String[]{"bash", 
> "-c", "id -G " + entry.getKey()});
> 270    
>      CID 135584:    (FB.DM_DEFAULT_ENCODING)
>      Another occurrence here
> 271                                   reader = new BufferedReader(new 
> InputStreamReader(process.getInputStream()));
> 272                                   line = reader.readLine();
> 273                                   reader.close();
> 274    
> 275                                   LOG.debug("id -G returned " + line);
> 276    
> {noformat}
> {noformat}
>  CID 135583:    (FB.DM_DEFAULT_ENCODING)
> /ugsync/src/main/java/org/apache/ranger/unixusersync/process/UnixUserGroupBuilder.java:
>  349 in 
> org.apache.ranger.unixusersync.process.UnixUserGroupBuilder.buildUnixGroupList(java.lang.String,
>  java.lang.String, boolean)()
> /ugsync/src/main/java/org/apache/ranger/unixusersync/process/UnixUserGroupBuilder.java:
>  412 in 
> org.apache.ranger.unixusersync.process.UnixUserGroupBuilder.buildUnixGroupList(java.lang.String,
>  java.lang.String, boolean)()
> /ugsync/src/main/java/org/apache/ranger/unixusersync/process/UnixUserGroupBuilder.java:
>  349 in 
> org.apache.ranger.unixusersync.process.UnixUserGroupBuilder.buildUnixGroupList(java.lang.String,
>  java.lang.String, boolean)()
> 343                   LOG.debug("Start enumerating groups");
> 344                   BufferedReader reader;
> 345    
> 346                   if (!useNss) {
> 347                           File file = new File(UNIX_GROUP_FILE);
> 348                           groupFileModifiedAt = file.lastModified();
>      CID 135583:    (FB.DM_DEFAULT_ENCODING)
>      Found reliance on default encoding: new java.io.FileReader(File).
> 349                           reader = new BufferedReader(new 
> FileReader(file)) ;
> 350                   } else {
> 351                           Process process = Runtime.getRuntime().exec(
> 352                                           new String[]{"bash", "-c", 
> allGroupsCmd});
> 353                           reader = new BufferedReader(new 
> InputStreamReader(process.getInputStream()));
> 354                   }
> /ugsync/src/main/java/org/apache/ranger/unixusersync/process/UnixUserGroupBuilder.java:
>  412 in 
> org.apache.ranger.unixusersync.process.UnixUserGroupBuilder.buildUnixGroupList(java.lang.String,
>  java.lang.String, boolean)()
> 406                           for (String group : groups) {
> 407                                   String command = 
> String.format(groupCmd, group);
> 408                                   String[] cmd = new String[]{"bash", 
> "-c", command + " '" + group + "'"};
> 409                                   LOG.debug("Executing: " + 
> Arrays.toString(cmd));
> 410    
> 411                                   Process process = 
> Runtime.getRuntime().exec(cmd);
>      CID 135583:    (FB.DM_DEFAULT_ENCODING)
>      Another occurrence here
> 412                                   reader = new BufferedReader(new 
> InputStreamReader(process.getInputStream()));
> 413                                   line = reader.readLine();
> 414                                   reader.close();
> 415                                   LOG.debug("bash -c " + command + " for 
> group " + group + " returned " + line);
> 416    
> 417                                   parseMembers(line);
> {noformat}
> {noformat}
>  CID 135582:  Exceptional resource leaks  (RESOURCE_LEAK)
> /ugsync/src/main/java/org/apache/ranger/unixusersync/process/UnixUserGroupBuilder.java:
>  358 in 
> org.apache.ranger.unixusersync.process.UnixUserGroupBuilder.buildUnixGroupList(java.lang.String,
>  java.lang.String, boolean)()
> 352                                           new String[]{"bash", "-c", 
> allGroupsCmd});
> 353                           reader = new BufferedReader(new 
> InputStreamReader(process.getInputStream()));
> 354                   }
> 355    
> 356                   String line = null;
> 357    
>      CID 135582:  Exceptional resource leaks  (RESOURCE_LEAK)
>      Variable "reader" going out of scope leaks the resource it refers to.
> 358                   while ((line = reader.readLine()) != null) {
> 359                           if (line.trim().isEmpty())
> 360                                   continue;
> 361    
> 362                           parseMembers(line);
> 363                   }
> {noformat}
> {noformat}
>  CID 135581:  Exceptional resource leaks  (RESOURCE_LEAK)
> /ugsync/src/main/java/org/apache/ranger/unixusersync/process/UnixUserGroupBuilder.java:
>  190 in 
> org.apache.ranger.unixusersync.process.UnixUserGroupBuilder.buildUnixUserList(java.lang.String)()
> 184                           reader = new BufferedReader(new 
> InputStreamReader(process.getInputStream()));
> 185                   }
> 186    
> 187                   String line = null;
> 188                   Map<String,String> userName2uid = new 
> HashMap<String,String>();
> 189    
>      CID 135581:  Exceptional resource leaks  (RESOURCE_LEAK)
>      Variable "reader" going out of scope leaks the resource it refers to.
> 190                   while ((line = reader.readLine()) != null) {
> 191                           if (line.trim().isEmpty())
> 192                                   continue;
> 193    
> 194                           String[] tokens = line.split(":");
> 195    
> {noformat}
> {noformat}
>  CID 135579:  Null pointer dereferences  (NULL_RETURNS)
> /ugsync/src/main/java/org/apache/ranger/unixusersync/process/UnixUserGroupBuilder.java:
>  277 in 
> org.apache.ranger.unixusersync.process.UnixUserGroupBuilder.buildUnixUserList(java.lang.String)()
> 271                                   reader = new BufferedReader(new 
> InputStreamReader(process.getInputStream()));
> 272                                   line = reader.readLine();
> 273                                   reader.close();
> 274    
> 275                                   LOG.debug("id -G returned " + line);
> 276    
>      CID 135579:  Null pointer dereferences  (NULL_RETURNS)
>      Calling a method on null object "line".
> 277                                   if (line.trim().isEmpty()) {
> 278                                           LOG.warn("User " + 
> entry.getKey() + " could not be resolved");
> 279                                           continue;
> 280                                   }
> 281    
> 282                                   String[] gids = line.split(" ");
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to