From 8641aab22c0cc5fecfa9a21459fca4b0e4308f03 Mon Sep 17 00:00:00 2001 From: LoveSy Date: Thu, 9 Sep 2021 21:09:34 +0800 Subject: [PATCH] [core] Fix resend when system server dies while sending (#1089) --- .../main/java/org/lsposed/lspd/service/BridgeService.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/org/lsposed/lspd/service/BridgeService.java b/core/src/main/java/org/lsposed/lspd/service/BridgeService.java index de5463ea..65f184ad 100644 --- a/core/src/main/java/org/lsposed/lspd/service/BridgeService.java +++ b/core/src/main/java/org/lsposed/lspd/service/BridgeService.java @@ -139,7 +139,8 @@ public class BridgeService { bridgeService.linkToDeath(bridgeRecipient, 0); } catch (Throwable e) { Log.w(TAG, "linkToDeath " + Log.getStackTraceString(e)); - sendToBridge(binder, false); + var snapshot = bridgeService; + sendToBridge(binder, snapshot == null || !snapshot.isBinderAlive()); return; } @@ -158,6 +159,9 @@ public class BridgeService { reply.readException(); } catch (Throwable e) { Log.e(TAG, "send binder " + Log.getStackTraceString(e)); + var snapshot = bridgeService; + sendToBridge(binder, snapshot == null || !snapshot.isBinderAlive()); + return; } finally { data.recycle(); reply.recycle();