diff --git a/camera/device/default/ExternalCameraUtils.cpp b/camera/device/default/ExternalCameraUtils.cpp index cfb95f2a4d..30c216f209 100644 --- a/camera/device/default/ExternalCameraUtils.cpp +++ b/camera/device/default/ExternalCameraUtils.cpp @@ -402,7 +402,10 @@ aidl::android::hardware::camera::common::Status importBufferImpl( buffer_handle_t buf, /*out*/ buffer_handle_t** outBufPtr) { using ::aidl::android::hardware::camera::common::Status; - if (buf == nullptr && bufId == BUFFER_ID_NO_BUFFER) { + // AIDL does not have null NativeHandles. It sends empty handles instead. + // We check for when the buf is empty instead of when buf is null. + bool isBufEmpty = buf == nullptr || (buf->numFds == 0 && buf->numInts == 0); + if (isBufEmpty && bufId == BUFFER_ID_NO_BUFFER) { ALOGE("%s: bufferId %" PRIu64 " has null buffer handle!", __FUNCTION__, bufId); return Status::ILLEGAL_ARGUMENT; } @@ -857,4 +860,4 @@ int AllocatedV4L2Frame::getData(uint8_t** outData, size_t* dataSize) { } // namespace device } // namespace camera } // namespace hardware -} // namespace android \ No newline at end of file +} // namespace android