From 92c7838ca310b1b2cda146b0099da72624068b21 Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Fri, 14 Oct 2011 18:32:24 -0700 Subject: [PATCH] Validate commands and arguments. Bug: 5465176 Change-Id: I9402054c20ea6cae42781c35bfc2ade90aac31ce --- .../java/com/android/server/NativeDaemonConnector.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/services/java/com/android/server/NativeDaemonConnector.java b/services/java/com/android/server/NativeDaemonConnector.java index 43d938cea3..28013bd7b3 100644 --- a/services/java/com/android/server/NativeDaemonConnector.java +++ b/services/java/com/android/server/NativeDaemonConnector.java @@ -207,6 +207,13 @@ final class NativeDaemonConnector implements Runnable, Handler.Callback, Watchdo */ private void sendCommandLocked(String command, String argument) throws NativeDaemonConnectorException { + if (command != null && command.indexOf('\0') >= 0) { + throw new IllegalArgumentException("unexpected command: " + command); + } + if (argument != null && argument.indexOf('\0') >= 0) { + throw new IllegalArgumentException("unexpected argument: " + argument); + } + if (LOCAL_LOGD) Slog.d(TAG, String.format("SND -> {%s} {%s}", command, argument)); if (mOutputStream == null) { Slog.e(TAG, "No connection to daemon", new IllegalStateException());