aboutsummaryrefslogtreecommitdiff
path: root/driver/java_reproducer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'driver/java_reproducer.cpp')
-rw-r--r--driver/java_reproducer.cpp79
1 files changed, 0 insertions, 79 deletions
diff --git a/driver/java_reproducer.cpp b/driver/java_reproducer.cpp
deleted file mode 100644
index ed4c6755..00000000
--- a/driver/java_reproducer.cpp
+++ /dev/null
@@ -1,79 +0,0 @@
-// Copyright 2021 Code Intelligence GmbH
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include "java_reproducer.h"
-
-#include "fuzzed_data_provider.h"
-#include "jvm_tooling.h"
-
-namespace {
-const char kRecordingFuzzedDataProviderClass[] =
- "com/code_intelligence/jazzer/runtime/RecordingFuzzedDataProvider";
-}
-
-namespace jazzer {
-jobject GetFuzzedDataProviderJavaObject(const JVM &jvm) {
- static jobject java_object = nullptr;
- if (java_object == nullptr) {
- jclass java_class = jvm.FindClass(kFuzzedDataProviderImplClass);
- jmethodID java_constructor = jvm.GetMethodID(java_class, "<init>", "()V");
- jobject local_ref = jvm.GetEnv().NewObject(java_class, java_constructor);
- // We leak a global reference here as it will be used until JVM exit.
- java_object = jvm.GetEnv().NewGlobalRef(local_ref);
- }
- return java_object;
-}
-
-jobject GetRecordingFuzzedDataProviderJavaObject(const JVM &jvm) {
- auto &env = jvm.GetEnv();
- jclass java_class = jvm.FindClass(kRecordingFuzzedDataProviderClass);
- jmethodID java_make_proxy = jvm.GetStaticMethodID(
- java_class, "makeFuzzedDataProviderProxy",
- "()Lcom/code_intelligence/jazzer/api/FuzzedDataProvider;", true);
- jobject local_ref = env.CallStaticObjectMethod(java_class, java_make_proxy);
- if (env.ExceptionCheck()) {
- env.ExceptionDescribe();
- exit(1);
- }
- // This global reference is deleted in SerializeRecordingFuzzedDataProvider.
- jobject global_ref = env.NewGlobalRef(local_ref);
- env.DeleteLocalRef(local_ref);
- return global_ref;
-}
-
-std::string SerializeRecordingFuzzedDataProvider(const JVM &jvm,
- jobject recorder) {
- auto &env = jvm.GetEnv();
- jclass java_class = jvm.FindClass(kRecordingFuzzedDataProviderClass);
- jmethodID java_serialize =
- jvm.GetStaticMethodID(java_class, "serializeFuzzedDataProviderProxy",
- "(Lcom/code_intelligence/jazzer/api/"
- "FuzzedDataProvider;)Ljava/lang/String;",
- true);
- auto serialized_recorder =
- (jstring)env.CallStaticObjectMethod(java_class, java_serialize, recorder);
- env.DeleteLocalRef(java_class);
- env.DeleteGlobalRef(recorder);
- if (env.ExceptionCheck()) {
- env.ExceptionDescribe();
- exit(1);
- }
- const char *serialized_recorder_cstr =
- env.GetStringUTFChars(serialized_recorder, nullptr);
- std::string out(serialized_recorder_cstr);
- env.ReleaseStringUTFChars(serialized_recorder, serialized_recorder_cstr);
- env.DeleteLocalRef(serialized_recorder);
- return out;
-}
-} // namespace jazzer