Additional crash providers: OOM, Segfault and StackOverflow
ci/woodpecker/push/woodpecker Pipeline was successful
Details
ci/woodpecker/push/woodpecker Pipeline was successful
Details
This commit is contained in:
parent
21690627d4
commit
2a20216d32
|
@ -17,13 +17,16 @@ The values are explained in more detail below
|
|||
- Method:
|
||||
- Unsafe_Universal_Forkbomb: Launch a self-multiplying process
|
||||
- Unsafe_Windows_WinAPI: Do some JNI-magic to instantly produce a blue-screen on windows
|
||||
- Unsafe_Universal_OOM: Causes an OOM exception
|
||||
- Broken_Universal_ExitCode: Exit the integrated Server. The game still displays, but you can no longer interact with the world or quit.
|
||||
- Safe_Universal_Exception: Performs an invalid operation. Behaves like every other crash and just closes the game, leaving a crash log.
|
||||
- SemiUnsafe_Universal_Exception: Throws a security exceptions. This does not work properly for 1.16.2
|
||||
- SemiUnsafe_Universal_Shutdown: Attempts to run a shutdown command. Since these are specific to some systems this might not always work.
|
||||
- SemiUnsafe_Universal_Segfault: Causes a segmentation fault using lwjgl.
|
||||
- SemiUnsafe_Universal_StackOverflow: Causes a stack overflow via infinite recursion.
|
||||
- None: Do nothing
|
||||
|
||||
Please note that all methods marked "Unsafe" as well as the shutdown method are not available in the curseforge release
|
||||
Please note that all methods marked "Unsafe" as well as the shutdown method are not available in the CurseForge release
|
||||
|
||||
<!-- modrinth_exclude.start -->
|
||||
# Building
|
||||
|
|
|
@ -22,6 +22,12 @@ dependencies {
|
|||
modLocalRuntime("com.terraformersmc:modmenu:5.0.2")
|
||||
}
|
||||
|
||||
loom {
|
||||
runs {
|
||||
this.named("client").get().vmArg("-Xmx2G")
|
||||
}
|
||||
}
|
||||
|
||||
fun list(`package`: String) = Files.list(projectDir.resolve("src/main/java").resolve(`package`.replace('.', '/')).toPath()).use { stream ->
|
||||
stream
|
||||
.map { it.fileName.toString() }
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
package io.gitlab.jfronny.breakme.crash.safe;
|
||||
|
||||
import io.gitlab.jfronny.breakme.crash.CrashProvider;
|
||||
import org.lwjgl.BufferUtils;
|
||||
import org.lwjgl.PointerBuffer;
|
||||
|
||||
public class SegfaultProvider implements CrashProvider {
|
||||
@Override
|
||||
public void crash() throws Exception {
|
||||
BufferUtils.zeroBuffer(PointerBuffer.create(0, 1000));
|
||||
}
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
package io.gitlab.jfronny.breakme.crash.safe;
|
||||
|
||||
import io.gitlab.jfronny.breakme.crash.CrashProvider;
|
||||
|
||||
public class StackOverflowProvider implements CrashProvider {
|
||||
@Override
|
||||
public void crash() throws Exception {
|
||||
crash();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
package io.gitlab.jfronny.breakme.crash.unsafe;
|
||||
|
||||
import io.gitlab.jfronny.breakme.crash.CrashProvider;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
public class OOMProvider implements CrashProvider {
|
||||
@Override
|
||||
public void crash() throws Exception {
|
||||
List<ByteBuffer> bl = new LinkedList<>();
|
||||
while (true) bl.add(ByteBuffer.allocate(1024 * 1024 * 1024));
|
||||
}
|
||||
}
|
|
@ -11,8 +11,11 @@
|
|||
"breakme.jfconfig.enum.Method.Exception": "Safe_Universal_Exception",
|
||||
"breakme.jfconfig.enum.Method.ExitCode": "Broken_Universal_ExitCode",
|
||||
"breakme.jfconfig.enum.Method.SecurityException": "SemiUnsafe_Universal_Exception",
|
||||
"breakme.jfconfig.enum.Method.Segfault": "SemiUnsafe_Universal_Segfault",
|
||||
"breakme.jfconfig.enum.Method.StackOverflow": "SemiUnsafe_Universal_StackOverflow",
|
||||
"breakme.jfconfig.enum.Method.Forkbomb": "Unsafe_Universal_Forkbomb",
|
||||
"breakme.jfconfig.enum.Method.Shutdown": "SemiUnsafe_Universal_Shutdown",
|
||||
"breakme.jfconfig.enum.Method.OOM": "Unsafe_Universal_OOM",
|
||||
"breakme.jfconfig.enum.Method.WinApi": "Unsafe_Windows_WinAPI",
|
||||
"breakme.jfconfig.enum.Method.None": "None"
|
||||
}
|
Loading…
Reference in New Issue