[vmkit-commits] [vmkit] r71215 - /vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClassLoader.cpp

Nicolas Geoffray nicolas.geoffray at lip6.fr
Fri May 8 04:15:23 PDT 2009


Author: geoffray
Date: Fri May  8 06:14:53 2009
New Revision: 71215

URL: http://llvm.org/viewvc/llvm-project?rev=71215&view=rev
Log:
Check the first word in the bytes before creating a new class.


Modified:
    vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClassLoader.cpp

Modified: vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClassLoader.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClassLoader.cpp?rev=71215&r1=71214&r2=71215&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClassLoader.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMClassLoader.cpp Fri May  8 06:14:53 2009
@@ -17,6 +17,7 @@
 #include "JavaThread.h"
 #include "JavaUpcalls.h"
 #include "Jnjvm.h"
+#include "Reader.h"
 
 using namespace jnjvm;
 
@@ -120,7 +121,14 @@
   BEGIN_NATIVE_EXCEPTION(0)
 
   Jnjvm* vm = JavaThread::get()->getJVM();
-  
+ 
+  // Before creating a class, do a check on the bytes.  
+  Reader reader((ArrayUInt8*)bytes);
+  uint32 magic = reader.readU4();
+  if (magic != Jnjvm::Magic) {
+    JavaThread::get()->getJVM()->classFormatError("bad magic number");
+  }
+
   JnjvmClassLoader* JCL = 
     JnjvmClassLoader::getJnjvmLoaderFromJavaObject((JavaObject*)loader, vm);
   





More information about the vmkit-commits mailing list