Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 88012468 authored by Andrei Homescu's avatar Andrei Homescu
Browse files

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
parent 81cca30c
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -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;
}