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

Commit 39466322 authored by Jeff Sharkey's avatar Jeff Sharkey
Browse files

Filter proxy FD open modes to those supported.

We don't support other fancy modes like O_CREAT/O_TMPFILE.

Bug: 120551813
Test: manual
Change-Id: Iefc4943505e7f5b117e808f168165801d0a3fad0
parent efd355c1
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

package com.android.server;

import static android.os.ParcelFileDescriptor.MODE_READ_ONLY;
import static android.os.ParcelFileDescriptor.MODE_READ_WRITE;
import static android.os.storage.OnObbStateChangeListener.ERROR_ALREADY_MOUNTED;
import static android.os.storage.OnObbStateChangeListener.ERROR_COULD_NOT_MOUNT;
import static android.os.storage.OnObbStateChangeListener.ERROR_COULD_NOT_UNMOUNT;
@@ -2758,6 +2760,14 @@ class StorageManagerService extends IStorageManager.Stub
    public @Nullable ParcelFileDescriptor openProxyFileDescriptor(
            int mountId, int fileId, int mode) {
        Slog.v(TAG, "mountProxyFileDescriptor");

        // We only support a narrow set of incoming mode flags
        if ((mode & MODE_READ_WRITE) == MODE_READ_WRITE) {
            mode = MODE_READ_WRITE;
        } else {
            mode = MODE_READ_ONLY;
        }

        try {
            synchronized (mAppFuseLock) {
                if (mAppFuseBridge == null) {