summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLucas Lin <lucaslin@google.com>2020-12-10 10:57:58 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2020-12-10 10:57:58 +0000
commitd0c6af4b5f3510faa41167b254e1a7d75a6212d2 (patch)
treeb059fcafd32885b94f74dd6fffbcc623ee50daf4
parentaf5dab1cb33464d01d32f7edb9941304171e5d58 (diff)
parentf3030714864e5c4daadfb21f9c82777f1b88e786 (diff)
Merge "Reimplement DumpUtils#checkDumpPermission() in ConnectivityService"
-rw-r--r--services/core/java/com/android/server/ConnectivityService.java15
1 files changed, 13 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java
index bc2921bf8dae..a42c86474460 100644
--- a/services/core/java/com/android/server/ConnectivityService.java
+++ b/services/core/java/com/android/server/ConnectivityService.java
@@ -186,7 +186,6 @@ import com.android.internal.net.VpnInfo;
import com.android.internal.net.VpnProfile;
import com.android.internal.util.ArrayUtils;
import com.android.internal.util.AsyncChannel;
-import com.android.internal.util.DumpUtils;
import com.android.internal.util.IndentingPrintWriter;
import com.android.internal.util.LocationPermissionChecker;
import com.android.internal.util.MessageUtils;
@@ -2525,9 +2524,21 @@ public class ConnectivityService extends IConnectivityManager.Stub
PriorityDump.dump(mPriorityDumper, fd, writer, args);
}
+ private boolean checkDumpPermission(Context context, String tag, PrintWriter pw) {
+ if (context.checkCallingOrSelfPermission(android.Manifest.permission.DUMP)
+ != PackageManager.PERMISSION_GRANTED) {
+ pw.println("Permission Denial: can't dump " + tag + " from from pid="
+ + Binder.getCallingPid() + ", uid=" + Binder.getCallingUid()
+ + " due to missing android.permission.DUMP permission");
+ return false;
+ } else {
+ return true;
+ }
+ }
+
private void doDump(FileDescriptor fd, PrintWriter writer, String[] args, boolean asProto) {
final IndentingPrintWriter pw = new IndentingPrintWriter(writer, " ");
- if (!DumpUtils.checkDumpPermission(mContext, TAG, pw)) return;
+ if (!checkDumpPermission(mContext, TAG, pw)) return;
if (asProto) return;
if (ArrayUtils.contains(args, DIAG_ARG)) {