From 293ad6c6749044d97ea2a5f3fbd5c6ad58124584 Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Mon, 11 Mar 2013 13:22:16 -0700 Subject: Handle corrupt RegisteredServicesCache XML. Avoid getting stuck in infinite loop. Bug: 8360183 Change-Id: I81728dcfbc35b456c9166cf5c5175d0a376df56f --- core/java/android/content/pm/RegisteredServicesCache.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'core/java/android/content') diff --git a/core/java/android/content/pm/RegisteredServicesCache.java b/core/java/android/content/pm/RegisteredServicesCache.java index aaa0917c70da..288d55f577f6 100644 --- a/core/java/android/content/pm/RegisteredServicesCache.java +++ b/core/java/android/content/pm/RegisteredServicesCache.java @@ -488,7 +488,8 @@ public abstract class RegisteredServicesCache { XmlPullParser parser = Xml.newPullParser(); parser.setInput(fis, null); int eventType = parser.getEventType(); - while (eventType != XmlPullParser.START_TAG) { + while (eventType != XmlPullParser.START_TAG + && eventType != XmlPullParser.END_DOCUMENT) { eventType = parser.next(); } String tagName = parser.getName(); -- cgit v1.2.3