Skip to content

Commit 7008156

Browse files
Check for non-existing values in stack elements
1 parent c2ab21f commit 7008156

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

closed/src/java.base/share/classes/openj9/internal/security/RestrictedSecurity.java

+10-4
Original file line numberDiff line numberDiff line change
@@ -885,7 +885,11 @@ boolean isRestrictedServiceAllowed(Service service, boolean isServiceAdded) {
885885
}
886886
String stackElemModule = stackElement.getModuleName();
887887
String stackElemFullClassName = stackElement.getClassName();
888-
String stackElemPackage = stackElemFullClassName.substring(stackElemFullClassName.lastIndexOf(".") + 1);
888+
int stackElemEnd = stackElemFullClassName.lastIndexOf(".");
889+
String stackElemPackage = null;
890+
if (stackElemEnd != -1) {
891+
stackElemPackage = stackElemFullClassName.substring(0, );
892+
}
889893
String module;
890894
switch (option) {
891895
case "ModuleAndFullClassName":
@@ -895,7 +899,8 @@ boolean isRestrictedServiceAllowed(Service service, boolean isServiceAdded) {
895899
}
896900
module = moduleAndFullClassName[0];
897901
String fullClassName = moduleAndFullClassName[1];
898-
found = stackElemModule.equals(module) && stackElemFullClassName.equals(fullClassName);
902+
found = (stackElemModule != null) && stackElemModule.equals(module)
903+
&& stackElemFullClassName.equals(fullClassName);
899904
break;
900905
case "ModuleAndPackage":
901906
String[] moduleAndPackage = value.split("/");
@@ -904,13 +909,14 @@ boolean isRestrictedServiceAllowed(Service service, boolean isServiceAdded) {
904909
}
905910
module = moduleAndPackage[0];
906911
String packageValue = moduleAndPackage[1];
907-
found = stackElemModule.equals(module) && stackElemFullClassName.equals(packageValue);
912+
found = (stackElemModule != null) && stackElemModule.equals(module)
913+
&& (stackElemPackage != null) && stackElemPackage.equals(packageValue);
908914
break;
909915
case "FullClassName":
910916
found = stackElemFullClassName.equals(value);
911917
break;
912918
case "Package":
913-
found = stackElemPackage.equals(value);
919+
found = (stackElemPackage != null) && stackElemPackage.equals(value);
914920
break;
915921
default:
916922
printStackTraceAndExit("Incorrect option to match in constraint: " + constraint);

0 commit comments

Comments
 (0)