From 91ccdb5f10456d7e47e5307515766e875a521802 Mon Sep 17 00:00:00 2001 From: Amith Yamasani Date: Thu, 14 Jan 2010 18:56:02 -0800 Subject: [PATCH] Security fix in accessibility - don't read out password. # 2371557 Check for password type before send accessibility event. [Submitting for Svet] --- core/java/android/widget/TextView.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index cdaba8a006cc1..876359df70c2c 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -6301,7 +6301,8 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener 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 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener @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();