Fix up-to-date checks for ValidateAccessWidenerTask (#565)

* Apply mitigation's against Log4J2 exploit CVE-2021-44228.

* Only warn when the yarn version does not match the minecraft version.

Should allow yarn versions to be used across mc versions when needed.

* Fix up-to-date checks for ValidateAccessWidenerTask

Co-authored-by: modmuss50 <modmuss50@gmail.com>
This commit is contained in:
Juuxel 2021-12-29 23:59:19 +02:00 committed by GitHub
parent 2752b61cb7
commit 005d180e0c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 11 additions and 7 deletions

View file

@ -60,6 +60,7 @@ public class LaunchProvider extends DependencyProvider {
.property("fabric.development", "true") .property("fabric.development", "true")
.property("fabric.remapClasspathFile", getRemapClasspathFile().getAbsolutePath()) .property("fabric.remapClasspathFile", getRemapClasspathFile().getAbsolutePath())
.property("log4j.configurationFile", getAllLog4JConfigFiles()) .property("log4j.configurationFile", getAllLog4JConfigFiles())
.property("log4j2.formatMsgNoLookups", "true")
.property("client", "java.library.path", nativesPath) .property("client", "java.library.path", nativesPath)
.property("client", "org.lwjgl.librarypath", nativesPath) .property("client", "org.lwjgl.librarypath", nativesPath)

View file

@ -196,7 +196,7 @@ public class MappingsProviderImpl extends DependencyProvider implements Mappings
String yarnMinecraftVersion = yarnVersion.substring(0, yarnVersion.lastIndexOf(separator)); String yarnMinecraftVersion = yarnVersion.substring(0, yarnVersion.lastIndexOf(separator));
if (!yarnMinecraftVersion.equalsIgnoreCase(minecraftVersion)) { if (!yarnMinecraftVersion.equalsIgnoreCase(minecraftVersion)) {
throw new RuntimeException(String.format("Minecraft Version (%s) does not match yarn's minecraft version (%s)", minecraftVersion, yarnMinecraftVersion)); getProject().getLogger().warn("Minecraft Version ({}) does not match yarn's minecraft version ({})", minecraftVersion, yarnMinecraftVersion);
} }
// We can save reading the zip file + header by checking the file name // We can save reading the zip file + header by checking the file name

View file

@ -59,6 +59,9 @@ public abstract class ValidateAccessWidenerTask extends DefaultTask {
getAccessWidener().convention(extension.getAccessWidenerPath()).finalizeValueOnRead(); getAccessWidener().convention(extension.getAccessWidenerPath()).finalizeValueOnRead();
getTargetJar().convention(getProject().getObjects().fileProperty().fileValue(extension.getMinecraftMappedProvider().getMappedJar())).finalizeValueOnRead(); getTargetJar().convention(getProject().getObjects().fileProperty().fileValue(extension.getMinecraftMappedProvider().getMappedJar())).finalizeValueOnRead();
// Ignore outputs for up-to-date checks as there aren't any (so only inputs are checked)
getOutputs().upToDateWhen(task -> true);
} }
@TaskAction @TaskAction

View file

@ -7,7 +7,7 @@
<PatternLayout> <PatternLayout>
<LoggerNamePatternSelector defaultPattern="%style{[%d{HH:mm:ss}]}{blue} %highlight{[%t/%level]}{FATAL=red, ERROR=red, WARN=yellow, INFO=green, DEBUG=green, TRACE=blue} %style{(%logger{1})}{cyan} %highlight{%msg%n}{FATAL=red, ERROR=red, WARN=normal, INFO=normal, DEBUG=normal, TRACE=normal}" disableAnsi="${sys:fabric.log.disableAnsi:-true}"> <LoggerNamePatternSelector defaultPattern="%style{[%d{HH:mm:ss}]}{blue} %highlight{[%t/%level]}{FATAL=red, ERROR=red, WARN=yellow, INFO=green, DEBUG=green, TRACE=blue} %style{(%logger{1})}{cyan} %highlight{%msg%n}{FATAL=red, ERROR=red, WARN=normal, INFO=normal, DEBUG=normal, TRACE=normal}" disableAnsi="${sys:fabric.log.disableAnsi:-true}">
<!-- Dont show the logger name for minecraft classes--> <!-- Dont show the logger name for minecraft classes-->
<PatternMatch key="net.minecraft.,com.mojang." pattern="%style{[%d{HH:mm:ss}]}{blue} %highlight{[%t/%level]}{FATAL=red, ERROR=red, WARN=yellow, INFO=green, DEBUG=green, TRACE=blue} %style{(Minecraft)}{cyan} %highlight{%msg%n}{FATAL=red, ERROR=red, WARN=normal, INFO=normal, DEBUG=normal, TRACE=normal}"/> <PatternMatch key="net.minecraft.,com.mojang." pattern="%style{[%d{HH:mm:ss}]}{blue} %highlight{[%t/%level]}{FATAL=red, ERROR=red, WARN=yellow, INFO=green, DEBUG=green, TRACE=blue} %style{(Minecraft)}{cyan} %highlight{%msg{nolookups}%n}{FATAL=red, ERROR=red, WARN=normal, INFO=normal, DEBUG=normal, TRACE=normal}"/>
</LoggerNamePatternSelector> </LoggerNamePatternSelector>
</PatternLayout> </PatternLayout>
</Console> </Console>
@ -15,9 +15,9 @@
<!-- Vanilla server gui --> <!-- Vanilla server gui -->
<Queue name="ServerGuiConsole" ignoreExceptions="true"> <Queue name="ServerGuiConsole" ignoreExceptions="true">
<PatternLayout> <PatternLayout>
<LoggerNamePatternSelector defaultPattern="[%d{HH:mm:ss} %level] (%logger{1}) %msg%n"> <LoggerNamePatternSelector defaultPattern="[%d{HH:mm:ss} %level] (%logger{1}) %msg{nolookups}%n">
<!-- Dont show the logger name for minecraft classes--> <!-- Dont show the logger name for minecraft classes-->
<PatternMatch key="net.minecraft.,com.mojang." pattern="[%d{HH:mm:ss} %level] %msg%n"/> <PatternMatch key="net.minecraft.,com.mojang." pattern="[%d{HH:mm:ss} %level] %msg{nolookups}%n"/>
</LoggerNamePatternSelector> </LoggerNamePatternSelector>
</PatternLayout> </PatternLayout>
</Queue> </Queue>
@ -25,9 +25,9 @@
<!-- latest.log same as vanilla --> <!-- latest.log same as vanilla -->
<RollingRandomAccessFile name="LatestFile" fileName="logs/latest.log" filePattern="logs/%d{yyyy-MM-dd}-%i.log.gz"> <RollingRandomAccessFile name="LatestFile" fileName="logs/latest.log" filePattern="logs/%d{yyyy-MM-dd}-%i.log.gz">
<PatternLayout> <PatternLayout>
<LoggerNamePatternSelector defaultPattern="[%d{HH:mm:ss}] [%t/%level] (%logger{1}) %msg%n"> <LoggerNamePatternSelector defaultPattern="[%d{HH:mm:ss}] [%t/%level] (%logger{1}) %msg{nolookups}%n">
<!-- Dont show the logger name for minecraft classes--> <!-- Dont show the logger name for minecraft classes-->
<PatternMatch key="net.minecraft.,com.mojang." pattern="[%d{HH:mm:ss}] [%t/%level] (Minecraft) %msg%n"/> <PatternMatch key="net.minecraft.,com.mojang." pattern="[%d{HH:mm:ss}] [%t/%level] (Minecraft) %msg{nolookups}%n"/>
</LoggerNamePatternSelector> </LoggerNamePatternSelector>
</PatternLayout> </PatternLayout>
<Policies> <Policies>
@ -38,7 +38,7 @@
<!-- Debug log file --> <!-- Debug log file -->
<RollingRandomAccessFile name="DebugFile" fileName="logs/debug.log" filePattern="logs/debug-%i.log.gz"> <RollingRandomAccessFile name="DebugFile" fileName="logs/debug.log" filePattern="logs/debug-%i.log.gz">
<PatternLayout pattern="[%d{HH:mm:ss}] [%t/%level] (%logger) %msg%n" /> <PatternLayout pattern="[%d{HH:mm:ss}] [%t/%level] (%logger) %msg{nolookups}%n" />
<!-- Keep 5 files max --> <!-- Keep 5 files max -->
<DefaultRolloverStrategy max="5" fileIndex="min"/> <DefaultRolloverStrategy max="5" fileIndex="min"/>