Security fix in accessibility - don't read out password. # 2371557
Check for password type before send accessibility event.
[Submitting for Svet]
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java
index cdaba8a..876359d 100644
--- a/core/java/android/widget/TextView.java
+++ b/core/java/android/widget/TextView.java
@@ -6301,7 +6301,8 @@
if (DEBUG_EXTRACT) Log.v(TAG, "beforeTextChanged start=" + start
+ " before=" + before + " after=" + after + ": " + buffer);
- if (AccessibilityManager.getInstance(mContext).isEnabled()) {
+ if (AccessibilityManager.getInstance(mContext).isEnabled()
+ && !isPasswordInputType(mInputType)) {
mBeforeText = buffer.toString();
}
@@ -6972,9 +6973,7 @@
@Override
public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event) {
- boolean isPassword =
- (mInputType & (EditorInfo.TYPE_MASK_CLASS | EditorInfo.TYPE_MASK_VARIATION)) ==
- (EditorInfo.TYPE_CLASS_TEXT | EditorInfo.TYPE_TEXT_VARIATION_PASSWORD);
+ final boolean isPassword = isPasswordInputType(mInputType);
if (!isPassword) {
CharSequence text = getText();