diff --git a/CHANGELOG.md b/CHANGELOG.md index 77a3348b..a3fb4ebd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,12 +1,12 @@ # Changelog -## [4.0.3] - TBD +## [4.0.3] - 2022/06/18 ### New features - TBD +None ### Bug fixes -TBD +- Amend Java system variable fix to be more specfic since they only affect Oracle. ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/364)) ### Tweaks - Add better error logging for statistic collection ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/359)) diff --git a/app/classes/shared/server.py b/app/classes/shared/server.py index cdd5f796..93b83459 100644 --- a/app/classes/shared/server.py +++ b/app/classes/shared/server.py @@ -239,18 +239,23 @@ class ServerInstance: "Detected nebulous java in start command. " "Replacing with full java path." ) - which_java_raw = self.helper.which_java() - java_path = which_java_raw + "\\bin\\java" - if str(which_java_raw) != str(self.helper.get_servers_root_dir) or str( - self.helper.get_servers_root_dir - ) in str(which_java_raw): - self.server_command[0] = java_path - else: - logger.critcal( - "Possible attack detected. User attempted to exec " - "java binary from server directory." + # Checks for Oracle Java. Only Oracle Java's helper will cause a re-exec. + if "/Oracle/Java/" in str(shutil.which("java")): + logger.info( + "Oracle Java detected. Changing start command to avoid re-exec." ) - return + which_java_raw = self.helper.which_java() + java_path = which_java_raw + "\\bin\\java" + if str(which_java_raw) != str(self.helper.get_servers_root_dir) or str( + self.helper.get_servers_root_dir + ) in str(which_java_raw): + self.server_command[0] = java_path + else: + logger.critcal( + "Possible attack detected. User attempted to exec " + "java binary from server directory." + ) + return self.server_path = Helpers.get_os_understandable_path(self.settings["path"]) # let's do some quick checking to make sure things actually exists