Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 373ab1fa authored by Pawan Wagh's avatar Pawan Wagh Committed by Gerrit Code Review
Browse files

Merge "Adding JNI for create random parcel"

parents b55d142b b44ed765
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@
 */
package randomparcel;
import android.os.IBinder;
import android.os.Parcel;

public class FuzzBinder {
    static {
@@ -33,6 +34,12 @@ public class FuzzBinder {
        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 getRandomParcel(Parcel parcel, byte[] data);
    private static native int registerNatives();
}
+14 −0
Original line number Diff line number Diff line
@@ -16,7 +16,9 @@

#include "random_parcel_jni.h"
#include <android_util_Binder.h>
#include <android_os_Parcel.h>
#include <fuzzbinder/libbinder_driver.h>
#include <fuzzbinder/random_parcel.h>
#include <fuzzer/FuzzedDataProvider.h>
using namespace android;

@@ -35,3 +37,15 @@ JNIEXPORT void JNICALL Java_randomparcel_FuzzBinder_fuzzServiceInternal(JNIEnv *
JNIEXPORT jint JNICALL Java_randomparcel_FuzzBinder_registerNatives(JNIEnv* 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);
}
+2 −0
Original line number Diff line number Diff line
@@ -23,4 +23,6 @@ extern "C" {

    // Function from AndroidRuntime
    jint registerFrameworkNatives(JNIEnv* env);

    JNIEXPORT void JNICALL Java_randomparcel_FuzzBinder_getRandomParcel(JNIEnv *env, jobject thiz, jobject parcel, jbyteArray fuzzData);
}