diff options
author | jfrijters <jfrijters> | 2013-02-19 13:51:05 +0400 |
---|---|---|
committer | jfrijters <jfrijters> | 2013-02-19 13:51:05 +0400 |
commit | 41854415b96ed5bee3306c9b537e7241adc6d8d5 (patch) | |
tree | 6a0106b65694e156afc6a4519f39a327ef2c4e92 | |
parent | f13a6f74961a96f7faf0f08dc017a9e6825e91e3 (diff) |
Bug fix. Disallow invalid class names in AssemblyClassLoader.loadClass().
-rw-r--r-- | openjdk/java/lang/ClassLoader.java | 2 | ||||
-rw-r--r-- | runtime/common.cs | 6 |
2 files changed, 7 insertions, 1 deletions
diff --git a/openjdk/java/lang/ClassLoader.java b/openjdk/java/lang/ClassLoader.java index 2645b226..96cc432e 100644 --- a/openjdk/java/lang/ClassLoader.java +++ b/openjdk/java/lang/ClassLoader.java @@ -935,7 +935,7 @@ public abstract class ClassLoader { String source); // true if the name is null or has the potential to be a valid binary name - private boolean checkName(String name) { + static boolean checkName(String name) { if ((name == null) || (name.length() == 0)) return true; if ((name.indexOf('/') != -1) diff --git a/runtime/common.cs b/runtime/common.cs index 34d6546a..4d32d27b 100644 --- a/runtime/common.cs +++ b/runtime/common.cs @@ -200,6 +200,12 @@ namespace IKVM.NativeCode.ikvm.runtime { public static global::java.lang.Class LoadClass(global::java.lang.ClassLoader classLoader, Assembly assembly, string name) { +#if !FIRST_PASS + if (!global::java.lang.ClassLoader.checkName(name)) + { + throw new global::java.lang.ClassNotFoundException(name); + } +#endif try { TypeWrapper tw = null; |