Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/ikvm-fork.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjfrijters <jfrijters>2013-02-19 13:51:05 +0400
committerjfrijters <jfrijters>2013-02-19 13:51:05 +0400
commit41854415b96ed5bee3306c9b537e7241adc6d8d5 (patch)
tree6a0106b65694e156afc6a4519f39a327ef2c4e92
parentf13a6f74961a96f7faf0f08dc017a9e6825e91e3 (diff)
Bug fix. Disallow invalid class names in AssemblyClassLoader.loadClass().
-rw-r--r--openjdk/java/lang/ClassLoader.java2
-rw-r--r--runtime/common.cs6
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;