From 83dd759f363b7850f97277af92b25fd7ebcfb741 Mon Sep 17 00:00:00 2001 From: Hardcore Sushi Date: Tue, 24 May 2022 18:05:58 +0200 Subject: [PATCH] Fix local reference table overflow in native_list_dir --- app/src/main/native/gocryptfs_jni.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/app/src/main/native/gocryptfs_jni.c b/app/src/main/native/gocryptfs_jni.c index 686d2d6..a1e1244 100644 --- a/app/src/main/native/gocryptfs_jni.c +++ b/app/src/main/native/gocryptfs_jni.c @@ -282,7 +282,19 @@ Java_sushi_hardcore_droidfs_GocryptfsVolume_native_1list_1dir(JNIEnv *env, jobje type = 1; //regular file } jstring jname = (*env)->NewStringUTF(env, name); - jobject explorerElement = (*env)->CallStaticObjectMethod(env, classExplorerElement, explorerElement_new, jname, type, (long long)attrs.r0, attrs.r1, jplain_dir);(*env)->CallBooleanMethod(env, element_list, java_ArrayList_add, explorerElement); + jobject explorerElement = (*env)->CallStaticObjectMethod( + env, + classExplorerElement, + explorerElement_new, + jname, + type, + (long long) attrs.r0, + attrs.r1, + jplain_dir + ); + (*env)->CallBooleanMethod(env, element_list, java_ArrayList_add, explorerElement); + (*env)->DeleteLocalRef(env, explorerElement); + (*env)->DeleteLocalRef(env, jname); c += name_len+1; }