From 9e7b89a35fb6069c38d1822be350dcc3b8540edc Mon Sep 17 00:00:00 2001 From: Kevin Chyn Date: Tue, 20 Nov 2018 11:24:49 -0800 Subject: [PATCH] Cancel current operation when binder dies When the binder dies, it makes no sense to send an error since the client is already dead. Instead, just notify the driver to cancel the current operation. Bug: 119592051 Test: manual Change-Id: I60e515bfff933df5e672ac2797d7d8620e6ece09 --- .../com/android/server/biometrics/ClientMonitor.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/biometrics/ClientMonitor.java b/services/core/java/com/android/server/biometrics/ClientMonitor.java index 22b7418b53b7b..a7ada2f6556c4 100644 --- a/services/core/java/com/android/server/biometrics/ClientMonitor.java +++ b/services/core/java/com/android/server/biometrics/ClientMonitor.java @@ -197,10 +197,15 @@ public abstract class ClientMonitor implements IBinder.DeathRecipient { @Override public void binderDied() { + // If the current client dies we should cancel the current operation. + Slog.e(getLogTag(), "Binder died, cancelling client"); + try { + getDaemonWrapper().cancel(); + } catch (RemoteException e) { + Slog.e(getLogTag(), "Remote exception", e); + } mToken = null; mListener = null; - onError(getHalDeviceId(), BiometricConstants.BIOMETRIC_ERROR_HW_UNAVAILABLE, - 0 /* vendorCode */); } @Override