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

Commit 5bd4fecb authored by Tomasz Wasilczyk's avatar Tomasz Wasilczyk Committed by Gerrit Code Review
Browse files

Merge "Disable Blob outside of Android" into main

parents ecc40143 bca8f94b
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -358,6 +358,22 @@ cc_library_static {
    ],
}

cc_library_static {
    name: "libbinder_rpc_no_blob",
    vendor_available: true,
    defaults: [
        "libbinder_common_defaults",
        "libbinder_android_defaults",
        "libbinder_kernel_defaults",
    ],
    cflags: [
        "-DBINDER_DISABLE_BLOB",
    ],
    visibility: [
        ":__subpackages__",
    ],
}

cc_library_static {
    name: "libbinder_rpc_single_threaded",
    defaults: [
+17 −0
Original line number Diff line number Diff line
@@ -40,7 +40,9 @@
#include <binder/TextOutput.h>

#include <android-base/scopeguard.h>
#ifndef BINDER_DISABLE_BLOB
#include <cutils/ashmem.h>
#endif
#include <utils/Flattenable.h>
#include <utils/Log.h>
#include <utils/String16.h>
@@ -1548,6 +1550,12 @@ status_t Parcel::writeUniqueFileDescriptor(const base::unique_fd& fd) {

status_t Parcel::writeBlob(size_t len, bool mutableCopy, WritableBlob* outBlob)
{
#ifdef BINDER_DISABLE_BLOB
    (void)len;
    (void)mutableCopy;
    (void)outBlob;
    return INVALID_OPERATION;
#else
    if (len > INT32_MAX) {
        // don't accept size_t values which may have come from an
        // inadvertent conversion from a negative int.
@@ -1599,6 +1607,7 @@ status_t Parcel::writeBlob(size_t len, bool mutableCopy, WritableBlob* outBlob)
    }
    ::close(fd);
    return status;
#endif
}

status_t Parcel::writeDupImmutableBlobFileDescriptor(int fd)
@@ -2382,6 +2391,11 @@ status_t Parcel::readUniqueParcelFileDescriptor(base::unique_fd* val) const

status_t Parcel::readBlob(size_t len, ReadableBlob* outBlob) const
{
#ifdef BINDER_DISABLE_BLOB
    (void)len;
    (void)outBlob;
    return INVALID_OPERATION;
#else
    int32_t blobType;
    status_t status = readInt32(&blobType);
    if (status) return status;
@@ -2415,6 +2429,7 @@ status_t Parcel::readBlob(size_t len, ReadableBlob* outBlob) const

    outBlob->init(fd, ptr, len, isMutable);
    return NO_ERROR;
#endif
}

status_t Parcel::read(FlattenableHelperInterface& val) const
@@ -3158,6 +3173,7 @@ size_t Parcel::getOpenAshmemSize() const
    }

    size_t openAshmemSize = 0;
#ifndef BINDER_DISABLE_BLOB
    for (size_t i = 0; i < kernelFields->mObjectsSize; i++) {
        const flat_binder_object* flat =
                reinterpret_cast<const flat_binder_object*>(mData + kernelFields->mObjects[i]);
@@ -3172,6 +3188,7 @@ size_t Parcel::getOpenAshmemSize() const
            }
        }
    }
#endif
    return openAshmemSize;
}
#endif // BINDER_WITH_KERNEL_IPC