From a8e8e4a34f8f5e07cbccf4e20a485e1d0b88fe0d Mon Sep 17 00:00:00 2001 From: Christopher Tate Date: Wed, 4 Jan 2017 11:18:22 -0800 Subject: [PATCH] Harden against jobscheduler client app misbehavior Client apps can supply a ParcelableBundle of extras as part of their job parameters. Make sure we don't blow up if those extras turn out to be malformed. Bug 34050090 Change-Id: I196a5ede7230aa93a971bd9fb87d032730d2f296 --- .../core/java/com/android/server/job/JobServiceContext.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/job/JobServiceContext.java b/services/core/java/com/android/server/job/JobServiceContext.java index 5e495fab3f6e6..fb54d3bb94685 100644 --- a/services/core/java/com/android/server/job/JobServiceContext.java +++ b/services/core/java/com/android/server/job/JobServiceContext.java @@ -445,7 +445,10 @@ public class JobServiceContext extends IJobCallback.Stub implements ServiceConne mVerb = VERB_STARTING; scheduleOpTimeOut(); service.startJob(mParams); - } catch (RemoteException e) { + } catch (Exception e) { + // We catch 'Exception' because client-app malice or bugs might induce a wide + // range of possible exception-throw outcomes from startJob() and its handling + // of the client's ParcelableBundle extras. Slog.e(TAG, "Error sending onStart message to '" + mRunningJob.getServiceComponent().getShortClassName() + "' ", e); }