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

Commit 241cd54d authored by Dianne Hackborn's avatar Dianne Hackborn Committed by Android (Google) Code Review
Browse files

Merge "Maybe fix #2422586: Native crash in...

Merge "Maybe fix #2422586: Native crash in android_os_Parcel_closeFileDescriptor() killed the phone process"
parents f60ce402 18668392
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -273,7 +273,8 @@ public class MemoryFile
     * @hide
     */
    public ParcelFileDescriptor getParcelFileDescriptor() throws IOException {
        return new ParcelFileDescriptor(getFileDescriptor());
        FileDescriptor fd = getFileDescriptor();
        return fd != null ? new ParcelFileDescriptor(fd) : null;
    }

    /**
+9 −3
Original line number Diff line number Diff line
@@ -113,7 +113,7 @@ public class ParcelFileDescriptor implements Parcelable {
        }
        
        FileDescriptor fd = Parcel.openFileDescriptor(path, mode);
        return new ParcelFileDescriptor(fd);
        return fd != null ? new ParcelFileDescriptor(fd) : null;
    }

    /**
@@ -127,7 +127,7 @@ public class ParcelFileDescriptor implements Parcelable {
     */
    public static ParcelFileDescriptor fromSocket(Socket socket) {
        FileDescriptor fd = getFileDescriptorFromSocket(socket);
        return new ParcelFileDescriptor(fd);
        return fd != null ? new ParcelFileDescriptor(fd) : null;
    }

    // Extracts the file descriptor from the specified socket and returns it untouched
@@ -163,7 +163,10 @@ public class ParcelFileDescriptor implements Parcelable {
     *             If an error occurs attempting to close this ParcelFileDescriptor.
     */
    public void close() throws IOException {
        synchronized (this) {
            if (mClosed) return;
            mClosed = true;
        }
        if (mParcelDescriptor != null) {
            // If this is a proxy to another file descriptor, just call through to its
            // close method.
@@ -235,6 +238,9 @@ public class ParcelFileDescriptor implements Parcelable {
    
    /*package */ParcelFileDescriptor(FileDescriptor descriptor) {
        super();
        if (descriptor == null) {
            throw new NullPointerException("descriptor must not be null");
        }
        mFileDescriptor = descriptor;
        mParcelDescriptor = null;
    }