Uploaded image for project: 'Ranger'
  1. Ranger
  2. RANGER-847

Fix code scan issues

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 0.6.0
    • 0.6.0
    • None
    • None

    Description

      Coverity scan reports below issues. Need to be fixed.

       
       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    
      
       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);
      
       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     		}
      
       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    
      
       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(" ");
      

      Attachments

        Activity

          People

            bolke Bolke de Bruin
            vel Velmurugan Periasamy
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: