From 1165c90081ab1ae67b74fffff2c604573b3bde45 Mon Sep 17 00:00:00 2001 From: Brian Kim Date: Fri, 2 Sep 2022 08:23:06 +0000 Subject: [PATCH] Reset fenceFd without calling close on it Locking the fd takes ownership of it (https://cs.android.com/android/platform/superproject/+/master:frameworks/native/libs/ui/include/ui/Gralloc.h;l=68;drc=916c2d0bd4a6dae3eececb8d0e74f0ff00959816), but Image_setFenceFd closes the fd as well, so it was getting double closed Bug: 243257933 Change-Id: I04c1dd86c1ff7f99f8954873381a0e5a002b7360 --- media/jni/android_media_ImageWriter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/media/jni/android_media_ImageWriter.cpp b/media/jni/android_media_ImageWriter.cpp index 6c6fccb592169..fbc4bb9f9a81f 100644 --- a/media/jni/android_media_ImageWriter.cpp +++ b/media/jni/android_media_ImageWriter.cpp @@ -1014,7 +1014,7 @@ static void Image_getLockedImage(JNIEnv* env, jobject thiz, LockedImage *image) status_t res = lockImageFromBuffer( buffer, GRALLOC_USAGE_SW_WRITE_OFTEN, noCrop, fenceFd, image); // Clear the fenceFd as it is already consumed by lock call. - Image_setFenceFd(env, thiz, /*fenceFd*/-1); + env->SetIntField(thiz, gSurfaceImageClassInfo.mNativeFenceFd, -1); if (res != OK) { jniThrowExceptionFmt(env, "java/lang/RuntimeException", "lock buffer failed for format 0x%x",