[
https://issues.apache.org/jira/browse/RANGER-847?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15149082#comment-15149082
]
Bolke de Bruin edited comment on RANGER-847 at 2/16/16 6:52 PM:
----------------------------------------------------------------
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?
Furthermore, are the "out of scope" issues real? Reader gets brought into scope
and can get garbage collected as far as I can gather.
(And how to run them myself?)
was (Author: bolke):
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?
(And how to run them myself?)
> 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)