[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