From 02cafc9f6ec018ae31ca9032be67a2d8d410736a Mon Sep 17 00:00:00 2001 From: Jeff Brown Date: Sat, 26 Feb 2011 15:39:12 -0800 Subject: [PATCH] Log errors reading input channel from parcel. Bug: 3378634 Change-Id: I47908e48b8348f0366dcef545e828b65d99d81a6 --- core/jni/android_view_InputChannel.cpp | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) 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);