Rangers could you please review and provide fixes for Coverity flagged issues below? Thanks.
From: "scan-ad...@coverity.com" <scan-ad...@coverity.com> Date: Monday, March 19, 2018 at 2:55 AM To: Velmurugan Periasamy <vperias...@hortonworks.com> Subject: New Defects reported by Coverity Scan for Apache Ranger Hi, Please find the latest report on new defect(s) introduced to Apache Ranger found with Coverity Scan. 33 new defect(s) introduced to Apache Ranger found with Coverity Scan. 13 defect(s), reported by Coverity Scan earlier, were marked fixed in the recent build analyzed by Coverity Scan. New defect(s) Reported-by: Coverity Scan Showing 20 of 33 defect(s) ** CID 174644: (FB.NP_UNWRITTEN_FIELD) /agents-common/src/test/java/org/apache/ranger/plugin/policyengine/TestPolic yEngine.java: 588 in org.apache.ranger.plugin.policyengine.TestPolicyEngine.runValiditySchedulerT ests(java.lang.String)() /agents-common/src/test/java/org/apache/ranger/plugin/policyengine/TestPolic yEngine.java: 598 in org.apache.ranger.plugin.policyengine.TestPolicyEngine.runValiditySchedulerT ests(java.lang.String)() /agents-common/src/test/java/org/apache/ranger/plugin/policyengine/TestPolic yEngine.java: 605 in org.apache.ranger.plugin.policyengine.TestPolicyEngine.runValiditySchedulerT ests(java.lang.String)() ____________________________________________________________________________ ____________________________ *** CID 174644: (FB.NP_UNWRITTEN_FIELD) /agents-common/src/test/java/org/apache/ranger/plugin/policyengine/TestPolic yEngine.java: 588 in org.apache.ranger.plugin.policyengine.TestPolicyEngine.runValiditySchedulerT ests(java.lang.String)() 582 boolean isValid = true; 583 List<ValidationFailureDetails> validationFailures = new ArrayList<>(); 584 boolean isApplicable = false; 585 586 List<RangerValiditySchedule> validatedSchedules = new ArrayList<>(); 587 >>> CID 174644: (FB.NP_UNWRITTEN_FIELD) >>> Read of unwritten field validitySchedules. 588 for (RangerValiditySchedule validitySchedule : testCase.validitySchedules) { 589 RangerValidityScheduleValidator validator = new RangerValidityScheduleValidator(validitySchedule); 590 RangerValiditySchedule validatedSchedule = validator.validate(validationFailures); 591 isValid = isValid && validatedSchedule != null; 592 if (isValid) { 593 validatedSchedules.add(validatedSchedule); /agents-common/src/test/java/org/apache/ranger/plugin/policyengine/TestPolic yEngine.java: 598 in org.apache.ranger.plugin.policyengine.TestPolicyEngine.runValiditySchedulerT ests(java.lang.String)() 592 if (isValid) { 593 validatedSchedules.add(validatedSchedule); 594 } 595 } 596 if (isValid) { 597 for (RangerValiditySchedule validSchedule : validatedSchedules) { >>> CID 174644: (FB.NP_UNWRITTEN_FIELD) >>> Read of unwritten field accessTime. 598 isApplicable = new RangerValidityScheduleEvaluator(validSchedule).isApplicable(testCase.accessT ime.getTime()); 599 if (isApplicable) { 600 break; 601 } 602 } 603 } /agents-common/src/test/java/org/apache/ranger/plugin/policyengine/TestPolic yEngine.java: 605 in org.apache.ranger.plugin.policyengine.TestPolicyEngine.runValiditySchedulerT ests(java.lang.String)() 599 if (isApplicable) { 600 break; 601 } 602 } 603 } 604 >>> CID 174644: (FB.NP_UNWRITTEN_FIELD) >>> Read of unwritten field result. 605 assertTrue(testCase.name, isValid == testCase.result.isValid); 606 assertTrue(testCase.name, isApplicable == testCase.result.isApplicable); 607 assertTrue(testCase.name + ", [" + validationFailures +"]", validationFailures.size() == testCase.result.validationFailureCount); 608 } 609 } 610 TimeZone.setDefault(defaultTZ); ** CID 174643: FindBugs: Performance (FB.SIC_INNER_SHOULD_BE_STATIC) /plugin-atlas/src/main/java/org/apache/ranger/authorization/atlas/authorizer /RangerAtlasAuthorizer.java: 299 in () ____________________________________________________________________________ ____________________________ *** CID 174643: FindBugs: Performance (FB.SIC_INNER_SHOULD_BE_STATIC) /plugin-atlas/src/main/java/org/apache/ranger/authorization/atlas/authorizer /RangerAtlasAuthorizer.java: 299 in () 293 class RangerAtlasPlugin extends RangerBasePlugin { 294 RangerAtlasPlugin() { 295 super("atlas", "atlas"); 296 } 297 } 298 >>> CID 174643: FindBugs: Performance (FB.SIC_INNER_SHOULD_BE_STATIC) >>> Should >>> org.apache.ranger.authorization.atlas.authorizer.RangerAtlasAuthorizer$Range >>> rAtlasAuditHandler be a _static_ inner class? 299 class RangerAtlasAuditHandler extends RangerDefaultAuditHandler { 300 private final Map<Long, AuthzAuditEvent> auditEvents; 301 private final String resourcePath; 302 private boolean denyExists = false; 303 304 ** CID 174642: FindBugs: Performance (FB.BX_UNBOXING_IMMEDIATELY_REBOXED) /agents-common/src/main/java/org/apache/ranger/plugin/model/RangerPolicy.jav a: 200 in org.apache.ranger.plugin.model.RangerPolicy.setPolicyPriority(java.lang.Inte ger)() ____________________________________________________________________________ ____________________________ *** CID 174642: FindBugs: Performance (FB.BX_UNBOXING_IMMEDIATELY_REBOXED) /agents-common/src/main/java/org/apache/ranger/plugin/model/RangerPolicy.jav a: 200 in org.apache.ranger.plugin.model.RangerPolicy.setPolicyPriority(java.lang.Inte ger)() 194 } 195 196 /** 197 * @param policyPriority the policyPriority to set 198 */ 199 public void setPolicyPriority(Integer policyPriority) { >>> CID 174642: FindBugs: Performance >>> (FB.BX_UNBOXING_IMMEDIATELY_REBOXED) >>> Boxed value is unboxed and then immediately reboxed. 200 this.policyPriority = policyPriority == null ? RangerPolicy.POLICY_PRIORITY_NORMAL : policyPriority; 201 } 202 203 /** 204 * @return the description 205 */ ** CID 174641: FindBugs: Bad practice (FB.SE_BAD_FIELD) /agents-common/src/main/java/org/apache/ranger/plugin/model/RangerPolicy.jav a: 83 in () ____________________________________________________________________________ ____________________________ *** CID 174641: FindBugs: Bad practice (FB.SE_BAD_FIELD) /agents-common/src/main/java/org/apache/ranger/plugin/model/RangerPolicy.jav a: 83 in () 77 private List<RangerPolicyItem> allowExceptions; 78 private List<RangerPolicyItem> denyExceptions; 79 private List<RangerDataMaskPolicyItem> dataMaskPolicyItems; 80 private List<RangerRowFilterPolicyItem> rowFilterPolicyItems; 81 private String serviceType; 82 private Map<String, Object> options; >>> CID 174641: FindBugs: Bad practice (FB.SE_BAD_FIELD) >>> Class org.apache.ranger.plugin.model.RangerPolicy defines non-transient >>> non-serializable instance field validitySchedules. 83 private List<RangerValiditySchedule> validitySchedules; 84 private List<String> policyLabels; 85 86 public RangerPolicy() { 87 this(null, null, null, null, null, null, null, null, null, null, null); 88 } ** CID 174640: (FB.DLS_DEAD_LOCAL_STORE) /security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java: 3907 in org.apache.ranger.biz.ServiceDBStore.writeBookForPolicyItems(org.apache.rang er.plugin.model.RangerPolicy, org.apache.ranger.plugin.model.RangerPolicy$RangerPolicyItem, org.apache.ranger.plugin.model.RangerPolicy$RangerDataMaskPolicyItem, org.apache.ranger.plugin.model.RangerPolicy$RangerRowFilterPolicyItem, org.apache.poi.ss.usermodel.Row, java.lang.String)() /security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java: 3916 in org.apache.ranger.biz.ServiceDBStore.writeBookForPolicyItems(org.apache.rang er.plugin.model.RangerPolicy, org.apache.ranger.plugin.model.RangerPolicy$RangerPolicyItem, org.apache.ranger.plugin.model.RangerPolicy$RangerDataMaskPolicyItem, org.apache.ranger.plugin.model.RangerPolicy$RangerRowFilterPolicyItem, org.apache.poi.ss.usermodel.Row, java.lang.String)() /security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java: 3917 in org.apache.ranger.biz.ServiceDBStore.writeBookForPolicyItems(org.apache.rang er.plugin.model.RangerPolicy, org.apache.ranger.plugin.model.RangerPolicy$RangerPolicyItem, org.apache.ranger.plugin.model.RangerPolicy$RangerDataMaskPolicyItem, org.apache.ranger.plugin.model.RangerPolicy$RangerRowFilterPolicyItem, org.apache.poi.ss.usermodel.Row, java.lang.String)() ____________________________________________________________________________ ____________________________ *** CID 174640: (FB.DLS_DEAD_LOCAL_STORE) /security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java: 3907 in org.apache.ranger.biz.ServiceDBStore.writeBookForPolicyItems(org.apache.rang er.plugin.model.RangerPolicy, org.apache.ranger.plugin.model.RangerPolicy$RangerPolicyItem, org.apache.ranger.plugin.model.RangerPolicy$RangerDataMaskPolicyItem, org.apache.ranger.plugin.model.RangerPolicy$RangerRowFilterPolicyItem, org.apache.poi.ss.usermodel.Row, java.lang.String)() 3901 String isExcludesValue = ""; 3902 Cell cell = row.createCell(0); 3903 cell.setCellValue(policy.getId()); 3904 List<RangerPolicyItemAccess> accesses = new ArrayList<RangerPolicyItemAccess>(); 3905 List<RangerPolicyItemCondition> conditionsList = new ArrayList<RangerPolicyItemCondition>(); 3906 String conditionKeyValue = ""; >>> CID 174640: (FB.DLS_DEAD_LOCAL_STORE) >>> Dead store to policyLabels. 3907 List<String> policyLabels = new ArrayList<String>(); 3908 String resValue = ""; 3909 String resourceKeyVal = ""; 3910 String isRecursiveValue = ""; 3911 String resKey = ""; 3912 StringBuffer sb = new StringBuffer(); /security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java: 3916 in org.apache.ranger.biz.ServiceDBStore.writeBookForPolicyItems(org.apache.rang er.plugin.model.RangerPolicy, org.apache.ranger.plugin.model.RangerPolicy$RangerPolicyItem, org.apache.ranger.plugin.model.RangerPolicy$RangerDataMaskPolicyItem, org.apache.ranger.plugin.model.RangerPolicy$RangerRowFilterPolicyItem, org.apache.poi.ss.usermodel.Row, java.lang.String)() 3910 String isRecursiveValue = ""; 3911 String resKey = ""; 3912 StringBuffer sb = new StringBuffer(); 3913 StringBuffer sbIsRecursive = new StringBuffer(); 3914 StringBuffer sbIsExcludes = new StringBuffer(); 3915 Map<String, RangerPolicyResource> resources = policy.getResources(); >>> CID 174640: (FB.DLS_DEAD_LOCAL_STORE) >>> Dead store to dataMaskInfo. 3916 RangerPolicyItemDataMaskInfo dataMaskInfo = new RangerPolicyItemDataMaskInfo(); 3917 RangerPolicyItemRowFilterInfo filterInfo = new RangerPolicyItemRowFilterInfo(); 3918 cell = row.createCell(1); 3919 cell.setCellValue(policy.getName()); 3920 cell = row.createCell(2); 3921 if (resources != null) { /security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java: 3917 in org.apache.ranger.biz.ServiceDBStore.writeBookForPolicyItems(org.apache.rang er.plugin.model.RangerPolicy, org.apache.ranger.plugin.model.RangerPolicy$RangerPolicyItem, org.apache.ranger.plugin.model.RangerPolicy$RangerDataMaskPolicyItem, org.apache.ranger.plugin.model.RangerPolicy$RangerRowFilterPolicyItem, org.apache.poi.ss.usermodel.Row, java.lang.String)() 3911 String resKey = ""; 3912 StringBuffer sb = new StringBuffer(); 3913 StringBuffer sbIsRecursive = new StringBuffer(); 3914 StringBuffer sbIsExcludes = new StringBuffer(); 3915 Map<String, RangerPolicyResource> resources = policy.getResources(); 3916 RangerPolicyItemDataMaskInfo dataMaskInfo = new RangerPolicyItemDataMaskInfo(); >>> CID 174640: (FB.DLS_DEAD_LOCAL_STORE) >>> Dead store to filterInfo. 3917 RangerPolicyItemRowFilterInfo filterInfo = new RangerPolicyItemRowFilterInfo(); 3918 cell = row.createCell(1); 3919 cell.setCellValue(policy.getName()); 3920 cell = row.createCell(2); 3921 if (resources != null) { 3922 for (Entry<String, RangerPolicyResource> resource : resources.entrySet()) { ** CID 174639: (FB.SE_BAD_FIELD) /agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/Ranger TagForEval.java: 63 in () /agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/Ranger TagForEval.java: 65 in () ____________________________________________________________________________ ____________________________ *** CID 174639: (FB.SE_BAD_FIELD) /agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/Ranger TagForEval.java: 63 in () 57 58 private String type; 59 private Map<String, String> attributes; 60 private Map<String, Object> options; 61 private RangerPolicyResourceMatcher.MatchType matchType = RangerPolicyResourceMatcher.MatchType.SELF; 62 @JsonIgnore >>> CID 174639: (FB.SE_BAD_FIELD) >>> Class org.apache.ranger.plugin.contextenricher.RangerTagForEval defines >>> non-transient non-serializable instance field validityPeriods. 63 private List<RangerValiditySchedule> validityPeriods; 64 @JsonIgnore 65 private List<RangerValidityScheduleEvaluator> validityPeriodEvaluators; 66 67 68 private RangerTagForEval() {} /agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/Ranger TagForEval.java: 65 in () 59 private Map<String, String> attributes; 60 private Map<String, Object> options; 61 private RangerPolicyResourceMatcher.MatchType matchType = RangerPolicyResourceMatcher.MatchType.SELF; 62 @JsonIgnore 63 private List<RangerValiditySchedule> validityPeriods; 64 @JsonIgnore >>> CID 174639: (FB.SE_BAD_FIELD) >>> Class org.apache.ranger.plugin.contextenricher.RangerTagForEval defines >>> non-transient non-serializable instance field validityPeriodEvaluators. 65 private List<RangerValidityScheduleEvaluator> validityPeriodEvaluators; 66 67 68 private RangerTagForEval() {} 69 70 public RangerTagForEval(RangerTag tag, RangerPolicyResourceMatcher.MatchType matchType) { ** CID 174638: (FB.UWF_UNWRITTEN_FIELD) /agents-common/src/test/java/org/apache/ranger/plugin/policyengine/TestPolic yEngine.java: 588 in () /agents-common/src/test/java/org/apache/ranger/plugin/policyengine/TestPolic yEngine.java: 598 in () /agents-common/src/test/java/org/apache/ranger/plugin/policyengine/TestPolic yEngine.java: 605 in () ____________________________________________________________________________ ____________________________ *** CID 174638: (FB.UWF_UNWRITTEN_FIELD) /agents-common/src/test/java/org/apache/ranger/plugin/policyengine/TestPolic yEngine.java: 588 in () 582 boolean isValid = true; 583 List<ValidationFailureDetails> validationFailures = new ArrayList<>(); 584 boolean isApplicable = false; 585 586 List<RangerValiditySchedule> validatedSchedules = new ArrayList<>(); 587 >>> CID 174638: (FB.UWF_UNWRITTEN_FIELD) >>> Unwritten field: >>> org.apache.ranger.plugin.policyengine.TestPolicyEngine$ValiditySchedulerTest >>> Case.validitySchedules. 588 for (RangerValiditySchedule validitySchedule : testCase.validitySchedules) { 589 RangerValidityScheduleValidator validator = new RangerValidityScheduleValidator(validitySchedule); 590 RangerValiditySchedule validatedSchedule = validator.validate(validationFailures); 591 isValid = isValid && validatedSchedule != null; 592 if (isValid) { 593 validatedSchedules.add(validatedSchedule); /agents-common/src/test/java/org/apache/ranger/plugin/policyengine/TestPolic yEngine.java: 598 in () 592 if (isValid) { 593 validatedSchedules.add(validatedSchedule); 594 } 595 } 596 if (isValid) { 597 for (RangerValiditySchedule validSchedule : validatedSchedules) { >>> CID 174638: (FB.UWF_UNWRITTEN_FIELD) >>> Unwritten field: >>> org.apache.ranger.plugin.policyengine.TestPolicyEngine$ValiditySchedulerTest >>> Case.accessTime. 598 isApplicable = new RangerValidityScheduleEvaluator(validSchedule).isApplicable(testCase.accessT ime.getTime()); 599 if (isApplicable) { 600 break; 601 } 602 } 603 } /agents-common/src/test/java/org/apache/ranger/plugin/policyengine/TestPolic yEngine.java: 605 in () 599 if (isApplicable) { 600 break; 601 } 602 } 603 } 604 >>> CID 174638: (FB.UWF_UNWRITTEN_FIELD) >>> Unwritten field: >>> org.apache.ranger.plugin.policyengine.TestPolicyEngine$ValiditySchedulerTest >>> Case.result. 605 assertTrue(testCase.name, isValid == testCase.result.isValid); 606 assertTrue(testCase.name, isApplicable == testCase.result.isApplicable); 607 assertTrue(testCase.name + ", [" + validationFailures +"]", validationFailures.size() == testCase.result.validationFailureCount); 608 } 609 } 610 TimeZone.setDefault(defaultTZ); ** CID 174637: FindBugs: Dodgy code (FB.DLS_DEAD_LOCAL_STORE) /security-admin/src/test/java/org/apache/ranger/biz/TestServiceDBStore.java: 1293 in org.apache.ranger.biz.TestServiceDBStore.test21deleteService()() ____________________________________________________________________________ ____________________________ *** CID 174637: FindBugs: Dodgy code (FB.DLS_DEAD_LOCAL_STORE) /security-admin/src/test/java/org/apache/ranger/biz/TestServiceDBStore.java: 1293 in org.apache.ranger.biz.TestServiceDBStore.test21deleteService()() 1287 policyResourceMap.setResourceId(Id); 1288 policyResourceMap.setUpdatedByUserId(Id); 1289 policyResourceMap.setUpdateTime(new Date()); 1290 policyResourceMap.setValue("1L"); 1291 policyResourceMapList.add(policyResourceMap); 1292 >>> CID 174637: FindBugs: Dodgy code (FB.DLS_DEAD_LOCAL_STORE) >>> Dead store to xxPolicyLabelMapList. 1293 List<XXPolicyLabelMap> xxPolicyLabelMapList = new ArrayList<>(); 1294 List<XXServiceConfigDef> xServiceConfigDefList = new ArrayList<XXServiceConfigDef>(); 1295 XXServiceConfigDef serviceConfigDefObj = new XXServiceConfigDef(); 1296 serviceConfigDefObj.setId(Id); 1297 xServiceConfigDefList.add(serviceConfigDefObj); 1298 ** CID 174636: Null pointer dereferences (FORWARD_NULL) ____________________________________________________________________________ ____________________________ *** CID 174636: Null pointer dereferences (FORWARD_NULL) /security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java: 2510 in org.apache.ranger.rest.ServiceREST.getServicePolicies(java.lang.Long, javax.servlet.http.HttpServletRequest)() 2504 filter.setStartIndex(savedStartIndex); 2505 filter.setMaxRows(savedMaxRows); 2506 } 2507 2508 servicePolicies = applyAdminAccessFilter(servicePolicies); 2509 >>> CID 174636: Null pointer dereferences (FORWARD_NULL) >>> Passing null pointer "filter" to "toRangerPolicyList", which >>> dereferences it. 2510 ret = toRangerPolicyList(servicePolicies, filter); 2511 } 2512 } catch(WebApplicationException excp) { 2513 throw excp; 2514 } catch (Throwable excp) { 2515 LOG.error("getServicePolicies(" + serviceId + ") failed", excp); ** CID 174635: High impact security (CSRF) /security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java: 1326 in org.apache.ranger.rest.ServiceREST.secureRevokeAccess(java.lang.String, org.apache.ranger.plugin.util.GrantRevokeRequest, javax.servlet.http.HttpServletRequest)() ____________________________________________________________________________ ____________________________ *** CID 174635: High impact security (CSRF) /security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java: 1326 in org.apache.ranger.rest.ServiceREST.secureRevokeAccess(java.lang.String, org.apache.ranger.plugin.util.GrantRevokeRequest, javax.servlet.http.HttpServletRequest)() 1320 return ret; 1321 } 1322 1323 @POST 1324 @Path("/secure/services/revoke/{serviceName}") 1325 @Produces({ "application/json", "application/xml" }) >>> CID 174635: High impact security (CSRF) >>> "org.apache.ranger.rest.ServiceREST.secureRevokeAccess" is a web-app >>> entry point that requires protection from cross-site request forgery (CSRF). 1326 public RESTResponse secureRevokeAccess(@PathParam("serviceName") String serviceName, GrantRevokeRequest revokeRequest, @Context HttpServletRequest request) throws Exception { 1327 if(LOG.isDebugEnabled()) { 1328 LOG.debug("==> ServiceREST.secureRevokeAccess(" + serviceName + ", " + revokeRequest + ")"); 1329 } 1330 RESTResponse ret = new RESTResponse(); 1331 RangerPerfTracer perf = null; ** CID 174634: Null pointer dereferences (REVERSE_INULL) /security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java: 378 in org.apache.ranger.biz.XUserMgr.updateXUser(org.apache.ranger.view.VXUser)() ____________________________________________________________________________ ____________________________ *** CID 174634: Null pointer dereferences (REVERSE_INULL) /security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java: 378 in org.apache.ranger.biz.XUserMgr.updateXUser(org.apache.ranger.view.VXUser)() 372 vXPortalUser.setPublicScreenName(vXUser.getName()); 373 } 374 vXPortalUser.setUserSource(oldUserProfile.getUserSource()); 375 376 String hiddenPasswordString = PropertiesUtil.getProperty("ranger.password.hidden", "*****"); 377 String password = vXUser.getPassword(); >>> CID 174634: Null pointer dereferences (REVERSE_INULL) >>> Null-checking "oldUserProfile" suggests that it may be null, but it has >>> already been dereferenced on all paths leading to the check. 378 if (oldUserProfile != null && password != null 379 && password.equals(hiddenPasswordString)) { 380 vXPortalUser.setPassword(oldUserProfile.getPassword()); 381 } 382 else if(oldUserProfile != null && oldUserProfile.getUserSource() == RangerCommonEnums.USER_EXTERNAL && password != null){ 383 vXPortalUser.setPassword(oldUserProfile.getPassword()); ** CID 174633: High impact security (CSRF) /security-admin/src/main/java/org/apache/ranger/rest/PublicAPIsv2.java: 370 in org.apache.ranger.rest.PublicAPIsv2.updatePolicy(org.apache.ranger.plugin.mo del.RangerPolicy, java.lang.Long)() ____________________________________________________________________________ ____________________________ *** CID 174633: High impact security (CSRF) /security-admin/src/main/java/org/apache/ranger/rest/PublicAPIsv2.java: 370 in org.apache.ranger.rest.PublicAPIsv2.updatePolicy(org.apache.ranger.plugin.mo del.RangerPolicy, java.lang.Long)() 364 return serviceREST.applyPolicy(policy, request); 365 } 366 367 @PUT 368 @Path("/api/policy/{id}") 369 @Produces({ "application/json", "application/xml" }) >>> CID 174633: High impact security (CSRF) >>> "org.apache.ranger.rest.PublicAPIsv2.updatePolicy" is a web-app entry >>> point that requires protection from cross-site request forgery (CSRF). 370 public RangerPolicy updatePolicy(RangerPolicy policy, @PathParam("id") Long id) { 371 // if policy.id is specified, it should be same as the param 'id' 372 if(policy.getId() == null) { 373 policy.setId(id); 374 } else if(!policy.getId().equals(id)) { 375 throw restErrorUtil.createRESTException(HttpServletResponse.SC_BAD_REQUEST , "policyID mismatch", true); ** CID 174632: FindBugs: Bad practice (FB.HE_EQUALS_USE_HASHCODE) /security-admin/src/main/java/org/apache/ranger/entity/XXPolicyLabelMap.java : 135 in org.apache.ranger.entity.XXPolicyLabelMap.equals(java.lang.Object)() ____________________________________________________________________________ ____________________________ *** CID 174632: FindBugs: Bad practice (FB.HE_EQUALS_USE_HASHCODE) /security-admin/src/main/java/org/apache/ranger/entity/XXPolicyLabelMap.java : 135 in org.apache.ranger.entity.XXPolicyLabelMap.equals(java.lang.Object)() 129 */ 130 public void setPolicyLabelId(Long policyLabelId) { 131 this.policyLabelId = policyLabelId; 132 } 133 134 @Override >>> CID 174632: FindBugs: Bad practice (FB.HE_EQUALS_USE_HASHCODE) >>> org.apache.ranger.entity.XXPolicyLabelMap defines equals and uses >>> Object.hashCode(). 135 public boolean equals(Object obj) { 136 if (this == obj) 137 return true; 138 if (!super.equals(obj)) 139 return false; 140 if (getClass() != obj.getClass()) ** CID 174631: Concurrent data access violations (ATOMICITY) /security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java: 3607 in org.apache.ranger.biz.ServiceDBStore.writeCSVForPolicyItems(org.apache.range r.plugin.model.RangerPolicy, org.apache.ranger.plugin.model.RangerPolicy$RangerPolicyItem, org.apache.ranger.plugin.model.RangerPolicy$RangerDataMaskPolicyItem, org.apache.ranger.plugin.model.RangerPolicy$RangerRowFilterPolicyItem, java.lang.StringBuilder, java.lang.String)() ____________________________________________________________________________ ____________________________ *** CID 174631: Concurrent data access violations (ATOMICITY) /security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java: 3607 in org.apache.ranger.biz.ServiceDBStore.writeCSVForPolicyItems(org.apache.range r.plugin.model.RangerPolicy, org.apache.ranger.plugin.model.RangerPolicy$RangerPolicyItem, org.apache.ranger.plugin.model.RangerPolicy$RangerDataMaskPolicyItem, org.apache.ranger.plugin.model.RangerPolicy$RangerRowFilterPolicyItem, java.lang.StringBuilder, java.lang.String)() 3601 resKey = resource.getKey(); 3602 RangerPolicyResource policyResource = resource.getValue(); 3603 List<String> resvalueList = policyResource.getValues(); 3604 isExcludes = policyResource.getIsExcludes().toString(); 3605 isRecursive = policyResource.getIsRecursive().toString(); 3606 resValue = resvalueList.toString(); >>> CID 174631: Concurrent data access violations (ATOMICITY) >>> Using "sb", an unreliable value, inside a synchronous method >>> ("sb.append(resourceKeyVal).append(" ")"). This code might not be thread >>> safe or might indicate a source of unnecessary synchronization. 3607 sb = sb.append(resourceKeyVal).append(" ").append(resKey) 3608 .append("=").append(resValue); 3609 sbIsExcludes = sbIsExcludes.append(resourceKeyVal).append(" ") 3610 .append(resKey).append("=[").append(isExcludes) 3611 .append("]"); 3612 sbIsRecursive = sbIsRecursive.append(resourceKeyVal) ** CID 174630: FindBugs: Internationalization (FB.DM_DEFAULT_ENCODING) /agents-common/src/test/java/org/apache/ranger/plugin/policyengine/TestPolic yEngine.java: 569 in org.apache.ranger.plugin.policyengine.TestPolicyEngine.runValiditySchedulerT ests(java.lang.String)() ____________________________________________________________________________ ____________________________ *** CID 174630: FindBugs: Internationalization (FB.DM_DEFAULT_ENCODING) /agents-common/src/test/java/org/apache/ranger/plugin/policyengine/TestPolic yEngine.java: 569 in org.apache.ranger.plugin.policyengine.TestPolicyEngine.runValiditySchedulerT ests(java.lang.String)() 563 TimeZone defaultTZ = TimeZone.getDefault(); 564 TimeZone.setDefault(TimeZone.getTimeZone("PST")); 565 566 List<ValiditySchedulerTestCase> testCases = null; 567 568 InputStream inStream = this.getClass().getResourceAsStream(resourceName); >>> CID 174630: FindBugs: Internationalization (FB.DM_DEFAULT_ENCODING) >>> Found reliance on default encoding: new >>> java.io.InputStreamReader(InputStream). 569 InputStreamReader reader = new InputStreamReader(inStream); 570 try { 571 Type listType = new TypeToken<List<ValiditySchedulerTestCase>>() {}.getType(); 572 testCases = gsonBuilder.fromJson(reader, listType); 573 } catch (Exception e) { 574 assertFalse("Exception in reading validity-scheduler test cases.", true); ** CID 174629: FindBugs: Performance (FB.SIC_INNER_SHOULD_BE_STATIC) /agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/Ranger ValidityScheduleEvaluator.java: 301 in () ____________________________________________________________________________ ____________________________ *** CID 174629: FindBugs: Performance (FB.SIC_INNER_SHOULD_BE_STATIC) /agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/Ranger ValidityScheduleEvaluator.java: 301 in () 295 - Start with minutes, and then hours. 296 - Must make sure that the later of the two Calendars - one computed with dayOfMonth, another computed with 297 dayOfWeek - is picked 298 - For dayOfMonth calculation, consider that months have different number of days 299 */ 300 >>> CID 174629: FindBugs: Performance (FB.SIC_INNER_SHOULD_BE_STATIC) >>> Should >>> org.apache.ranger.plugin.policyevaluator.RangerValidityScheduleEvaluator$Ran >>> gerRecurrenceEvaluator$ValueWithBorrow be a _static_ inner class? 301 private class ValueWithBorrow { 302 int value; 303 boolean borrow; 304 305 ValueWithBorrow() { 306 } ** CID 174628: FindBugs: Bad practice (FB.HE_EQUALS_USE_HASHCODE) /security-admin/src/main/java/org/apache/ranger/entity/XXUgsyncAuditInfo.jav a: 165 in org.apache.ranger.entity.XXUgsyncAuditInfo.equals(java.lang.Object)() ____________________________________________________________________________ ____________________________ *** CID 174628: FindBugs: Bad practice (FB.HE_EQUALS_USE_HASHCODE) /security-admin/src/main/java/org/apache/ranger/entity/XXUgsyncAuditInfo.jav a: 165 in org.apache.ranger.entity.XXUgsyncAuditInfo.equals(java.lang.Object)() 159 160 /** 161 * Checks for all attributes except referenced db objects 162 * @return true if all attributes match 163 */ 164 @Override >>> CID 174628: FindBugs: Bad practice (FB.HE_EQUALS_USE_HASHCODE) >>> org.apache.ranger.entity.XXUgsyncAuditInfo defines equals and uses >>> Object.hashCode(). 165 public boolean equals( Object obj) { 166 if (obj == null) 167 return false; 168 if (this == obj) 169 return true; 170 if (getClass() != obj.getClass()) ** CID 174627: (FB.DLS_DEAD_LOCAL_STORE) /security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java: 3584 in org.apache.ranger.biz.ServiceDBStore.writeCSVForPolicyItems(org.apache.range r.plugin.model.RangerPolicy, org.apache.ranger.plugin.model.RangerPolicy$RangerPolicyItem, org.apache.ranger.plugin.model.RangerPolicy$RangerDataMaskPolicyItem, org.apache.ranger.plugin.model.RangerPolicy$RangerRowFilterPolicyItem, java.lang.StringBuilder, java.lang.String)() /security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java: 3594 in org.apache.ranger.biz.ServiceDBStore.writeCSVForPolicyItems(org.apache.range r.plugin.model.RangerPolicy, org.apache.ranger.plugin.model.RangerPolicy$RangerPolicyItem, org.apache.ranger.plugin.model.RangerPolicy$RangerDataMaskPolicyItem, org.apache.ranger.plugin.model.RangerPolicy$RangerRowFilterPolicyItem, java.lang.StringBuilder, java.lang.String)() /security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java: 3595 in org.apache.ranger.biz.ServiceDBStore.writeCSVForPolicyItems(org.apache.range r.plugin.model.RangerPolicy, org.apache.ranger.plugin.model.RangerPolicy$RangerPolicyItem, org.apache.ranger.plugin.model.RangerPolicy$RangerDataMaskPolicyItem, org.apache.ranger.plugin.model.RangerPolicy$RangerRowFilterPolicyItem, java.lang.StringBuilder, java.lang.String)() ____________________________________________________________________________ ____________________________ *** CID 174627: (FB.DLS_DEAD_LOCAL_STORE) /security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java: 3584 in org.apache.ranger.biz.ServiceDBStore.writeCSVForPolicyItems(org.apache.range r.plugin.model.RangerPolicy, org.apache.ranger.plugin.model.RangerPolicy$RangerPolicyItem, org.apache.ranger.plugin.model.RangerPolicy$RangerDataMaskPolicyItem, org.apache.ranger.plugin.model.RangerPolicy$RangerRowFilterPolicyItem, java.lang.StringBuilder, java.lang.String)() 3578 String resourceKeyVal = ""; 3579 String isRecursiveValue = ""; 3580 String resKey = ""; 3581 String ServiceType = ""; 3582 String filterExpr = ""; 3583 String policyName = ""; >>> CID 174627: (FB.DLS_DEAD_LOCAL_STORE) >>> Dead store to policyLabels. 3584 List<String> policyLabels = new ArrayList<String>(); 3585 String policyConditionTypeValue = ""; 3586 serviceName = policy.getService(); 3587 description = policy.getDescription(); 3588 isAuditEnabled = policy.getIsAuditEnabled(); 3589 policyLabels = policy.getPolicyLabels(); /security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java: 3594 in org.apache.ranger.biz.ServiceDBStore.writeCSVForPolicyItems(org.apache.range r.plugin.model.RangerPolicy, org.apache.ranger.plugin.model.RangerPolicy$RangerPolicyItem, org.apache.ranger.plugin.model.RangerPolicy$RangerDataMaskPolicyItem, org.apache.ranger.plugin.model.RangerPolicy$RangerRowFilterPolicyItem, java.lang.StringBuilder, java.lang.String)() 3588 isAuditEnabled = policy.getIsAuditEnabled(); 3589 policyLabels = policy.getPolicyLabels(); 3590 StringBuffer sb = new StringBuffer(); 3591 StringBuffer sbIsRecursive = new StringBuffer(); 3592 StringBuffer sbIsExcludes = new StringBuffer(); 3593 Map<String, RangerPolicyResource> resources = policy.getResources(); >>> CID 174627: (FB.DLS_DEAD_LOCAL_STORE) >>> Dead store to dataMaskInfo. 3594 RangerPolicyItemDataMaskInfo dataMaskInfo = new RangerPolicyItemDataMaskInfo(); 3595 RangerPolicyItemRowFilterInfo filterInfo = new RangerPolicyItemRowFilterInfo(); 3596 policyName = policy.getName(); 3597 policyName = policyName.replace("|", ""); 3598 if (resources != null) { 3599 for (Entry<String, RangerPolicyResource> resource : resources /security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java: 3595 in org.apache.ranger.biz.ServiceDBStore.writeCSVForPolicyItems(org.apache.range r.plugin.model.RangerPolicy, org.apache.ranger.plugin.model.RangerPolicy$RangerPolicyItem, org.apache.ranger.plugin.model.RangerPolicy$RangerDataMaskPolicyItem, org.apache.ranger.plugin.model.RangerPolicy$RangerRowFilterPolicyItem, java.lang.StringBuilder, java.lang.String)() 3589 policyLabels = policy.getPolicyLabels(); 3590 StringBuffer sb = new StringBuffer(); 3591 StringBuffer sbIsRecursive = new StringBuffer(); 3592 StringBuffer sbIsExcludes = new StringBuffer(); 3593 Map<String, RangerPolicyResource> resources = policy.getResources(); 3594 RangerPolicyItemDataMaskInfo dataMaskInfo = new RangerPolicyItemDataMaskInfo(); >>> CID 174627: (FB.DLS_DEAD_LOCAL_STORE) >>> Dead store to filterInfo. 3595 RangerPolicyItemRowFilterInfo filterInfo = new RangerPolicyItemRowFilterInfo(); 3596 policyName = policy.getName(); 3597 policyName = policyName.replace("|", ""); 3598 if (resources != null) { 3599 for (Entry<String, RangerPolicyResource> resource : resources 3600 .entrySet()) { ** CID 174626: FindBugs: Bad practice (FB.SE_BAD_FIELD_INNER_CLASS) /agents-common/src/main/java/org/apache/ranger/plugin/model/validation/Range rValidityScheduleValidator.java: 319 in () ____________________________________________________________________________ ____________________________ *** CID 174626: FindBugs: Bad practice (FB.SE_BAD_FIELD_INNER_CLASS) /agents-common/src/main/java/org/apache/ranger/plugin/model/validation/Range rValidityScheduleValidator.java: 319 in () 313 private int upper; 314 private Range(int lower, int upper) { 315 this.lower = lower; 316 this.upper = upper; 317 } 318 } >>> CID 174626: FindBugs: Bad practice (FB.SE_BAD_FIELD_INNER_CLASS) >>> >>> org.apache.ranger.plugin.model.validation.RangerValidityScheduleValidator$1R >>> angeComparator is serializable but also an inner class of a >>> non-serializable >>> class. 319 class RangeComparator implements Comparator<Range>, Serializable { 320 @Override 321 public int compare(Range me, Range other) { 322 int result; 323 result = Integer.compare(me.lower, other.lower); 324 if (result == 0) { ** CID 174625: Low impact security (CONFIG.MISSING_GLOBAL_EXCEPTION_HANDLER) /security-admin/target/security-admin-web-1.1.0-SNAPSHOT.war/WEB-INF/web.xml : 1 in () ____________________________________________________________________________ ____________________________ *** CID 174625: Low impact security (CONFIG.MISSING_GLOBAL_EXCEPTION_HANDLER) /security-admin/target/security-admin-web-1.1.0-SNAPSHOT.war/WEB-INF/web.xml : 1 in () >>> CID 174625: Low impact security >>> (CONFIG.MISSING_GLOBAL_EXCEPTION_HANDLER) >>> The global exception handler "<error-page>" does not exist, or the >>> "<exception-type>" is not specified. 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!-- 3 Licensed to the Apache Software Foundation (ASF) under one or more 4 contributor license agreements. See the NOTICE file distributed with 5 this work for additional information regarding copyright ownership. 6 The ASF licenses this file to You under the Apache License, Version 2.0 ____________________________________________________________________________ ____________________________ To view the defects in Coverity Scan visit, https://u2389337.ct.sendgrid.net/wf/click?upn=08onrYu34A-2BWcWUl-2F-2BfV0V05 UPxvVjWch-2Bd2MGckcRZSbhom32dlDl11LWEm9nX11zsOWMf5dv3Q9Mogo-2FGua3FsLRTFft2V -2FOFC9o0P2e0-3D_CO1oOaGer-2FrymbKQzbDTvXPpxkDPFmL9Eblzl4HMyVLtpu0nyUfExAbcA c2ERf0-2F8kGNo4UC5MEVpszCoax3EY-2BPkJQOTvIjaAi6Bp-2B6lbBkP3z-2FbzRpTWQXlkS8B 0y-2B1LPI8g6yr36bgvpKTC-2BnBUuuniIMxTODt93lYU37nigxD6S73XhfeyIU2ewQGg2Q03qba a9AOw-2BHNgrOsf0Ohb8S0-2F-2BR3B3fy-2FS6oyDXhiM-3D To manage Coverity Scan email notifications for "vperias...@hortonworks.com", click https://u2389337.ct.sendgrid.net/wf/click?upn=08onrYu34A-2BWcWUl-2F-2BfV0V05 UPxvVjWch-2Bd2MGckcRbVDbis712qZDP-2FA8y06Nq4T6-2B6Ndk2x-2BSfdvZeCy5h5YUvw8bA 2PXMJRElVuf74Tt4MEqGsTWTahB1RxR-2BebwlUm-2Fncdtq8YW8CcyjdGNZ6EFRGijO9BHNLclF uFkWmyU-3D_CO1oOaGer-2FrymbKQzbDTvXPpxkDPFmL9Eblzl4HMyVLtpu0nyUfExAbcAc2ERf0 -2F8kGNo4UC5MEVpszCoax3EX9xeOmTSSqcwA-2FxrL5-2BpYAy8A2GJeohc1BNAOFifZpRv-2B1 zJ55d0Bu9csnXPXDrMEcWJ9YCHJM6SUClLoW7YFx-2F2XhCyFpBSzOljchUHY5Ts9H4z-2BTz0C4 4cb4HhVYjUJHEir-2BS6iX8-2F-2BxUJiZOKOA-3D