OSDN Git Service

Explicitly handle null rather than relying on NPE.
authorYohei Yukawa <yukawa@google.com>
Tue, 22 Mar 2016 19:54:22 +0000 (12:54 -0700)
committerYohei Yukawa <yukawa@google.com>
Tue, 22 Mar 2016 19:54:22 +0000 (12:54 -0700)
commit74750f209acccdd04e96dda890010245cbbd1c99
treefa3f2ee7e5a752070ef701545793c162ca5a9451
parentc57fc4787f5aadb129686e904b86d343c8ae3541
Explicitly handle null rather than relying on NPE.

IInputMethodManager is an actual IPC interface with which application
processes can communicate with InputMethodManagerService (IMMS).
Although this has never been a public API, it is actually exposed to the
application process hence we parameters passed to that interface methods
should be considered untrusted.

In Android L-MR1 and prior, calling IInputMethodManager#startInput()
from the application process via reflection with null EditorInfo can
result in NPE in the IME process, which is not great.

In Android M, doing that causes NPE in the IMMS process but the
exception is just sent back to the application process via Binder call,
which is no longer so harmful.

In Android N, we want to make sure that such an invalid internal API
call is clearly under our control, rather than relying on NPE, by having
an explicit null check.

Bug: 26866030
Change-Id: Ica812177d9ca454dd16e3dd6854f3053c329b344
services/core/java/com/android/server/InputMethodManagerService.java