From 6740857274367ae67f5876941596c55dc15db77a Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Tue, 24 Oct 2023 12:45:13 -0400 Subject: [PATCH] Fix unsanitized input being passed to TinyFD --- .../WorldGenSettingsComponentMixin.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 forge/src/main/java/org/embeddedt/modernfix/forge/mixin/bugfix/file_dialog_title/WorldGenSettingsComponentMixin.java diff --git a/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/bugfix/file_dialog_title/WorldGenSettingsComponentMixin.java b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/bugfix/file_dialog_title/WorldGenSettingsComponentMixin.java new file mode 100644 index 00000000..c273d3eb --- /dev/null +++ b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/bugfix/file_dialog_title/WorldGenSettingsComponentMixin.java @@ -0,0 +1,18 @@ +package org.embeddedt.modernfix.forge.mixin.bugfix.file_dialog_title; + +import net.minecraft.client.gui.screens.worldselection.WorldGenSettingsComponent; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.ModifyArg; + +@Mixin(WorldGenSettingsComponent.class) +public class WorldGenSettingsComponentMixin { + /** + * @author embeddedt + * @reason Do not provide resource pack-controlled string to TinyFD + */ + @ModifyArg(method = "*", at = @At(value = "INVOKE", target = "Lorg/lwjgl/util/tinyfd/TinyFileDialogs;tinyfd_openFileDialog(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Lorg/lwjgl/PointerBuffer;Ljava/lang/CharSequence;Z)Ljava/lang/String;", remap = false), index = 0) + private CharSequence sanitizeTitleString(CharSequence original) { + return "Select settings file (.json)"; + } +}