From 88012468fbb90113cb95e674231829d5a56c1b80 Mon Sep 17 00:00:00 2001 From: Andrei Homescu Date: Thu, 7 Jul 2022 04:30:05 +0000 Subject: libbinder: abort on Parcel::appendFrom in no-kernel mode Abort with LOG_ALWAYS_FATAL if Parcel::appendFrom is called on a kernel Parcel in a no-kernel build. Bug: 224644083 Test: build on Trusty Change-Id: I8a63b23fbd465de8d0e89597622692f7266ed0bf --- libs/binder/Parcel.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'libs/binder/Parcel.cpp') diff --git a/libs/binder/Parcel.cpp b/libs/binder/Parcel.cpp index 3dccf20082..537527e2c1 100644 --- a/libs/binder/Parcel.cpp +++ b/libs/binder/Parcel.cpp @@ -503,8 +503,8 @@ status_t Parcel::appendFrom(const Parcel* parcel, size_t offset, size_t len) { err = NO_ERROR; -#ifdef BINDER_WITH_KERNEL_IPC if (auto* kernelFields = maybeKernelFields()) { +#ifdef BINDER_WITH_KERNEL_IPC auto* otherKernelFields = parcel->maybeKernelFields(); LOG_ALWAYS_FATAL_IF(otherKernelFields == nullptr); @@ -564,6 +564,10 @@ status_t Parcel::appendFrom(const Parcel* parcel, size_t offset, size_t len) { } } } +#else + LOG_ALWAYS_FATAL("Binder kernel driver disabled at build time"); + return INVALID_OPERATION; +#endif // BINDER_WITH_KERNEL_IPC } else { auto* rpcFields = maybeRpcFields(); LOG_ALWAYS_FATAL_IF(rpcFields == nullptr); @@ -622,7 +626,6 @@ status_t Parcel::appendFrom(const Parcel* parcel, size_t offset, size_t len) { } } } -#endif // BINDER_WITH_KERNEL_IPC return err; } -- cgit v1.2.3-59-g8ed1b