Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
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(" ");