From bbe4b9fbc245b2b489f7dfcf7870f68523355c09 Mon Sep 17 00:00:00 2001 From: Christian Date: Sun, 16 Dec 2012 21:22:55 -0500 Subject: [PATCH] More fixes --- fml/common/cpw/mods/fml/common/asm/FMLSanityChecker.java | 7 ++++++- .../cpw/mods/fml/relauncher/RelaunchClassLoader.java | 7 +++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/fml/common/cpw/mods/fml/common/asm/FMLSanityChecker.java b/fml/common/cpw/mods/fml/common/asm/FMLSanityChecker.java index 3f6a5d51b9..6b075bd99f 100644 --- a/fml/common/cpw/mods/fml/common/asm/FMLSanityChecker.java +++ b/fml/common/cpw/mods/fml/common/asm/FMLSanityChecker.java @@ -20,7 +20,7 @@ import cpw.mods.fml.relauncher.RelaunchClassLoader; public class FMLSanityChecker implements IFMLCallHook { - private static final String FMLFINGERPRINT = ""; + private static final String FMLFINGERPRINT = "EE:E2:73:7A:8B:90:5F:7D:C6:02:D5:B7:23:9F:B6:29:C2:18:0F:3E".toLowerCase().replace(":",""); static class MLDetectorClassVisitor extends ClassVisitor { private boolean foundMarker = false; @@ -56,8 +56,13 @@ public class FMLSanityChecker implements IFMLCallHook String fingerprint = CertificateHelper.getFingerprint(certificate); if (fingerprint.equals(FMLFINGERPRINT)) { + FMLLog.info("Found valid fingerprint for FML: %s", fingerprint); goodFML = true; } + else + { + FMLLog.severe("Found invalid fingerprint for FML: %s", fingerprint); + } } } else diff --git a/fml/common/cpw/mods/fml/relauncher/RelaunchClassLoader.java b/fml/common/cpw/mods/fml/relauncher/RelaunchClassLoader.java index 1fe4ec795f..690cb112ed 100644 --- a/fml/common/cpw/mods/fml/relauncher/RelaunchClassLoader.java +++ b/fml/common/cpw/mods/fml/relauncher/RelaunchClassLoader.java @@ -118,7 +118,7 @@ public class RelaunchClassLoader extends URLClassLoader { CodeSigner[] signers = null; int lastDot = name.lastIndexOf('.'); - String pkgname = name.substring(0, lastDot); + String pkgname = lastDot == -1 ? "" : name.substring(0, lastDot); String fName = name.replace('.', '/').concat(".class"); String pkgPath = pkgname.replace('.', '/'); URLConnection urlConnection = findCodeSourceConnectionFor(fName); @@ -131,13 +131,12 @@ public class RelaunchClassLoader extends URLClassLoader Manifest mf = jf.getManifest(); JarEntry ent = jf.getJarEntry(fName); Package pkg = getPackage(pkgname); + getClassBytes(name); + signers = ent.getCodeSigners(); if (pkg == null) { pkg = definePackage(pkgname, mf, jarUrlConn.getJarFileURL()); packageManifests.put(pkg, mf); - // need to read the bytes to force the signing to be checked - getClassBytes(name); - signers = ent.getCodeSigners(); } else {