diff --git a/core/jni/android_view_InputChannel.cpp b/core/jni/android_view_InputChannel.cpp index 4a4393ae2dd12..0c2801cab7ba5 100644 --- a/core/jni/android_view_InputChannel.cpp +++ b/core/jni/android_view_InputChannel.cpp @@ -186,9 +186,21 @@ static void android_view_InputChannel_nativeReadFromParcel(JNIEnv* env, jobject bool isInitialized = parcel->readInt32(); if (isInitialized) { String8 name = parcel->readString8(); - int32_t ashmemFd = dup(parcel->readFileDescriptor()); - int32_t receivePipeFd = dup(parcel->readFileDescriptor()); - int32_t sendPipeFd = dup(parcel->readFileDescriptor()); + int32_t parcelAshmemFd = parcel->readFileDescriptor(); + int32_t ashmemFd = dup(parcelAshmemFd); + if (ashmemFd < 0) { + LOGE("Error %d dup ashmem fd %d.", errno, parcelAshmemFd); + } + int32_t parcelReceivePipeFd = parcel->readFileDescriptor(); + int32_t receivePipeFd = dup(parcelReceivePipeFd); + if (receivePipeFd < 0) { + LOGE("Error %d dup receive pipe fd %d.", errno, parcelReceivePipeFd); + } + int32_t parcelSendPipeFd = parcel->readFileDescriptor(); + int32_t sendPipeFd = dup(parcelSendPipeFd); + if (sendPipeFd < 0) { + LOGE("Error %d dup send pipe fd %d.", errno, parcelSendPipeFd); + } if (ashmemFd < 0 || receivePipeFd < 0 || sendPipeFd < 0) { if (ashmemFd >= 0) ::close(ashmemFd); if (receivePipeFd >= 0) ::close(receivePipeFd);