Merge "Adding JNI for create random parcel"
This commit is contained in:
@@ -15,6 +15,7 @@
|
|||||||
*/
|
*/
|
||||||
package randomparcel;
|
package randomparcel;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
|
import android.os.Parcel;
|
||||||
|
|
||||||
public class FuzzBinder {
|
public class FuzzBinder {
|
||||||
static {
|
static {
|
||||||
@@ -33,6 +34,12 @@ public class FuzzBinder {
|
|||||||
fuzzServiceInternal(binder, data);
|
fuzzServiceInternal(binder, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This API creates random parcel object
|
||||||
|
public static void createRandomParcel(Parcel parcel, byte[] data) {
|
||||||
|
getRandomParcel(parcel, data);
|
||||||
|
}
|
||||||
|
|
||||||
private static native void fuzzServiceInternal(IBinder binder, byte[] data);
|
private static native void fuzzServiceInternal(IBinder binder, byte[] data);
|
||||||
|
private static native void getRandomParcel(Parcel parcel, byte[] data);
|
||||||
private static native int registerNatives();
|
private static native int registerNatives();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,9 @@
|
|||||||
|
|
||||||
#include "random_parcel_jni.h"
|
#include "random_parcel_jni.h"
|
||||||
#include <android_util_Binder.h>
|
#include <android_util_Binder.h>
|
||||||
|
#include <android_os_Parcel.h>
|
||||||
#include <fuzzbinder/libbinder_driver.h>
|
#include <fuzzbinder/libbinder_driver.h>
|
||||||
|
#include <fuzzbinder/random_parcel.h>
|
||||||
#include <fuzzer/FuzzedDataProvider.h>
|
#include <fuzzer/FuzzedDataProvider.h>
|
||||||
using namespace android;
|
using namespace android;
|
||||||
|
|
||||||
@@ -35,3 +37,15 @@ JNIEXPORT void JNICALL Java_randomparcel_FuzzBinder_fuzzServiceInternal(JNIEnv *
|
|||||||
JNIEXPORT jint JNICALL Java_randomparcel_FuzzBinder_registerNatives(JNIEnv* env) {
|
JNIEXPORT jint JNICALL Java_randomparcel_FuzzBinder_registerNatives(JNIEnv* env) {
|
||||||
return registerFrameworkNatives(env);
|
return registerFrameworkNatives(env);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
JNIEXPORT void JNICALL Java_randomparcel_FuzzBinder_getRandomParcel(JNIEnv *env, jobject thiz, jobject jparcel, jbyteArray fuzzData) {
|
||||||
|
size_t len = static_cast<size_t>(env->GetArrayLength(fuzzData));
|
||||||
|
uint8_t data[len];
|
||||||
|
env->GetByteArrayRegion(fuzzData, 0, len, reinterpret_cast<jbyte*>(data));
|
||||||
|
|
||||||
|
FuzzedDataProvider provider(data, len);
|
||||||
|
RandomParcelOptions options;
|
||||||
|
|
||||||
|
Parcel* parcel = parcelForJavaObject(env, jparcel);
|
||||||
|
fillRandomParcel(parcel, std::move(provider), &options);
|
||||||
|
}
|
||||||
|
|||||||
@@ -23,4 +23,6 @@ extern "C" {
|
|||||||
|
|
||||||
// Function from AndroidRuntime
|
// Function from AndroidRuntime
|
||||||
jint registerFrameworkNatives(JNIEnv* env);
|
jint registerFrameworkNatives(JNIEnv* env);
|
||||||
|
|
||||||
|
JNIEXPORT void JNICALL Java_randomparcel_FuzzBinder_getRandomParcel(JNIEnv *env, jobject thiz, jobject parcel, jbyteArray fuzzData);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user