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

Commit 013bc8ae authored by Jin Seok Park's avatar Jin Seok Park Committed by Android (Google) Code Review
Browse files

Merge "Prevent file descriptor leak" into qt-dev

parents ebdb9db3 8a2a706e
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.