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

Commit d0365eb2 authored by Chiachang Wang's avatar Chiachang Wang
Browse files

Update the permission check for dump

ServicePermissionsTest#testDumpProtected expects to see nothing
from dump() if the caller does not have the required permission.

After the refactor the ConnectivityService#dump(). It does not
leak real information for those callers without permission but
show the title of dumpsys, i.e. it shows "DUMP OF SERVICE HIGH
connectivity". This breaks the test since the test expects to
see nothing.

Move the permission check to the front of dump call stack since
there is no way to call other private dump related methods.

Bug: 185425662
Test: atest android.security.cts.ServicePermissionsTest
Test: adb shell dumpsys connectivity
Change-Id: I173c968a4f1c4d6f618ed87725a6ccda8d309988
parent fe09ad78
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -2789,6 +2789,8 @@ public class ConnectivityService extends IConnectivityManager.Stub
    @Override
    protected void dump(@NonNull FileDescriptor fd, @NonNull PrintWriter writer,
            @Nullable String[] args) {
        if (!checkDumpPermission(mContext, TAG, writer)) return;

        mPriorityDumper.dump(fd, writer, args);
    }

@@ -2806,7 +2808,6 @@ public class ConnectivityService extends IConnectivityManager.Stub

    private void doDump(FileDescriptor fd, PrintWriter writer, String[] args) {
        final IndentingPrintWriter pw = new IndentingPrintWriter(writer, "  ");
        if (!checkDumpPermission(mContext, TAG, pw)) return;

        if (CollectionUtils.contains(args, DIAG_ARG)) {
            dumpNetworkDiagnostics(pw);