Loading libs/binder/Android.bp +16 −0 Original line number Diff line number Diff line Loading @@ -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: [ Loading libs/binder/Parcel.cpp +17 −0 Original line number Diff line number Diff line Loading @@ -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> Loading Loading @@ -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. Loading Loading @@ -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) Loading Loading @@ -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; Loading Loading @@ -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 Loading Loading @@ -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]); Loading @@ -3172,6 +3188,7 @@ size_t Parcel::getOpenAshmemSize() const } } } #endif return openAshmemSize; } #endif // BINDER_WITH_KERNEL_IPC Loading Loading
libs/binder/Android.bp +16 −0 Original line number Diff line number Diff line Loading @@ -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: [ Loading
libs/binder/Parcel.cpp +17 −0 Original line number Diff line number Diff line Loading @@ -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> Loading Loading @@ -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. Loading Loading @@ -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) Loading Loading @@ -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; Loading Loading @@ -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 Loading Loading @@ -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]); Loading @@ -3172,6 +3188,7 @@ size_t Parcel::getOpenAshmemSize() const } } } #endif return openAshmemSize; } #endif // BINDER_WITH_KERNEL_IPC Loading