From f183fdd024bfa87e929219ac537b7090eabae9b1 Mon Sep 17 00:00:00 2001 From: Steven Moreland Date: Tue, 27 Oct 2020 00:12:12 +0000 Subject: libbinder: support TF_CLEAR_BUF This flag instructs the kernel to clear transactions from send/reply buffers for certain transactions which may contain sensitive data, as a security precaution. Bug: 171501998 Test: binderLibTest (only checks there is no error) Change-Id: I69d732e5cc2b15472dc52d47c66716bc1b3be6ae --- libs/binder/IPCThreadState.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'libs/binder/IPCThreadState.cpp') diff --git a/libs/binder/IPCThreadState.cpp b/libs/binder/IPCThreadState.cpp index 05fcc2b878..a3a2f871e6 100644 --- a/libs/binder/IPCThreadState.cpp +++ b/libs/binder/IPCThreadState.cpp @@ -1244,7 +1244,9 @@ status_t IPCThreadState::executeCommand(int32_t cmd) if ((tr.flags & TF_ONE_WAY) == 0) { LOG_ONEWAY("Sending reply to %d!", mCallingPid); if (error < NO_ERROR) reply.setError(error); - sendReply(reply, 0); + + constexpr uint32_t kForwardReplyFlags = TF_CLEAR_BUF; + sendReply(reply, (tr.flags & kForwardReplyFlags)); } else { if (error != OK || reply.dataSize() != 0) { alog << "oneway function results will be dropped but finished with status " -- cgit v1.2.3-59-g8ed1b