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

Commit df035b91 authored by Michael Lentine's avatar Michael Lentine Committed by Android Git Automerger
Browse files

am 36462d9d: Merge "Add more logging for dup(fd) failure" into lmp-dev

* commit '36462d9d':
  Add more logging for dup(fd) failure
parents f625a249 36462d9d
Loading
Loading
Loading
Loading
+15 −3
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@

#include <private/binder/binder_module.h>

#include <fcntl.h>
#include <inttypes.h>
#include <stdio.h>
#include <stdlib.h>
@@ -1280,11 +1281,22 @@ status_t Parcel::read(FlattenableHelperInterface& val) const

    status_t err = NO_ERROR;
    for (size_t i=0 ; i<fd_count && err==NO_ERROR ; i++) {
        fds[i] = dup(this->readFileDescriptor());
        int oldfd = this->readFileDescriptor();
        fds[i] = dup(oldfd);
        if (fds[i] < 0) {
            int dupErrno = errno;
            err = BAD_VALUE;
            ALOGE("dup() failed in Parcel::read, i is %zu, fds[i] is %d, fd_count is %zu, error: %s",
                i, fds[i], fd_count, strerror(errno));
            int flags = fcntl(oldfd, F_GETFD);
            int fcntlErrno = errno;
            const flat_binder_object* flat = readObject(true);
            ALOGE("dup failed in Parcel::read, fd %zu of %zu\n"
                "  dup(%d) = %d [errno: %d (%s)]\n"
                "  fcntl(%d, F_GETFD) = %d [errno: %d (%s)]\n"
                "  flat %p type %d",
                i, fd_count,
                oldfd, fds[i], dupErrno, strerror(dupErrno),
                oldfd, flags, fcntlErrno, strerror(fcntlErrno),
                flat, flat ? flat->type : 0);
        }
    }