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

Commit 0d2b94fe authored by Android Build Merger (Role)'s avatar Android Build Merger (Role) Committed by Android (Google) Code Review
Browse files

Merge "Merge "Prevent file descriptor leak" into qt-dev am: 013bc8ae am:...

Merge "Merge "Prevent file descriptor leak" into qt-dev am: 013bc8ae am: 3df77763" into qt-r1-dev-plus-aosp
parents 62f29e33 79f62b29
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -1395,6 +1395,9 @@ public class ExifInterface {
        }
        mAssetInputStream = null;
        mFilename = null;
        // When FileDescriptor is duplicated and set to FileInputStream, ownership needs to be
        // clarified in order for garbage collection to take place.
        boolean isFdOwner = false;
        if (isSeekableFD(fileDescriptor)) {
            mSeekableFileDescriptor = fileDescriptor;
            // Keep the original file descriptor in order to save attributes when it's seekable.
@@ -1402,6 +1405,7 @@ public class ExifInterface {
            // feature won't be working.
            try {
                fileDescriptor = Os.dup(fileDescriptor);
                isFdOwner = true;
            } catch (ErrnoException e) {
                throw e.rethrowAsIOException();
            }
@@ -1411,7 +1415,7 @@ public class ExifInterface {
        mIsInputStream = false;
        FileInputStream in = null;
        try {
            in = new FileInputStream(fileDescriptor);
            in = new FileInputStream(fileDescriptor, isFdOwner);
            loadAttributes(in);
        } finally {
            IoUtils.closeQuietly(in);
@@ -1966,7 +1970,7 @@ public class ExifInterface {
            } else if (mSeekableFileDescriptor != null) {
                FileDescriptor fileDescriptor = Os.dup(mSeekableFileDescriptor);
                Os.lseek(fileDescriptor, 0, OsConstants.SEEK_SET);
                in = new FileInputStream(fileDescriptor);
                in = new FileInputStream(fileDescriptor, true);
            }
            if (in == null) {
                // Should not be reached this.