You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ranger.apache.org by "Bolke de Bruin (JIRA)" <ji...@apache.org> on 2016/02/17 16:41:18 UTC
[jira] [Updated] (RANGER-847) Fix code scan issues
[ https://issues.apache.org/jira/browse/RANGER-847?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Bolke de Bruin updated RANGER-847:
----------------------------------
Attachment: 0001-RANGER-847-Fix-resource-leaks-and-possible-nullpoint.patch
> 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
>
> Attachments: 0001-RANGER-847-Fix-resource-leaks-and-possible-nullpoint.patch
>
>
> 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)