From 2cfa060ecefaf0688ee0e829238ab13d8d48b003 Mon Sep 17 00:00:00 2001 From: Nan Wu Date: Thu, 9 Feb 2023 01:02:59 +0000 Subject: [PATCH] Fix NullPointerException caused by logging This reverts commit 22601e04224b88ae5e4fa390b546754cb6faaf9e and fix the bug. Bug: 268248340 Test: manual test Change-Id: I23bf0b2fc124b6b4073d276469f9646a5736c065 --- core/java/android/os/ParcelFileDescriptor.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/core/java/android/os/ParcelFileDescriptor.java b/core/java/android/os/ParcelFileDescriptor.java index 810bd636de074..93d508292c7f0 100644 --- a/core/java/android/os/ParcelFileDescriptor.java +++ b/core/java/android/os/ParcelFileDescriptor.java @@ -45,6 +45,7 @@ import android.system.Os; import android.system.OsConstants; import android.system.StructStat; import android.util.Log; +import android.util.Slog; import dalvik.system.CloseGuard; import dalvik.system.VMRuntime; @@ -329,6 +330,14 @@ public class ParcelFileDescriptor implements Parcelable, Closeable { } private static FileDescriptor openInternal(File file, int mode) throws FileNotFoundException { + if ((mode & MODE_WRITE_ONLY) != 0 && (mode & MODE_APPEND) == 0 + && (mode & MODE_TRUNCATE) == 0 && ((mode & MODE_READ_ONLY) == 0) + && file != null && file.exists()) { + Slog.wtfQuiet(TAG, "ParcelFileDescriptor.open is called with w without t or a or r, " + + "which will have a different behavior beginning in Android Q." + + "\nMode: " + mode + "\nFilename: " + file.getPath()); + } + final int flags = FileUtils.translateModePfdToPosix(mode) | ifAtLeastQ(O_CLOEXEC); int realMode = S_IRWXU | S_IRWXG;