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

Commit aeac647a authored by Christopher Tate's avatar Christopher Tate Committed by Android Git Automerger
Browse files

am 98e67d35: Don\'t corrupt parcel when writeFileDescriptor() fails

* commit '98e67d35':
  Don't corrupt parcel when writeFileDescriptor() fails
parents bcb868db 98e67d35
Loading
Loading
Loading
Loading
+8 −7
Original line number Diff line number Diff line
@@ -1013,21 +1013,22 @@ status_t Parcel::writeObject(const flat_binder_object& val, bool nullMetaData)
restart_write:
        *reinterpret_cast<flat_binder_object*>(mData+mDataPos) = val;

        // Need to write meta-data?
        if (nullMetaData || val.binder != 0) {
            mObjects[mObjectsSize] = mDataPos;
            acquire_object(ProcessState::self(), val, this);
            mObjectsSize++;
        }

        // remember if it's a file descriptor
        if (val.type == BINDER_TYPE_FD) {
            if (!mAllowFds) {
                // fail before modifying our object index
                return FDS_NOT_ALLOWED;
            }
            mHasFds = mFdsKnown = true;
        }

        // Need to write meta-data?
        if (nullMetaData || val.binder != 0) {
            mObjects[mObjectsSize] = mDataPos;
            acquire_object(ProcessState::self(), val, this);
            mObjectsSize++;
        }

        return finishWrite(sizeof(flat_binder_object));
    }