summaryrefslogtreecommitdiff
path: root/cmds
diff options
context:
space:
mode:
authorYao Chen <yaochen@google.com>2023-09-29 18:39:13 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2023-09-29 18:39:13 +0000
commit2b9c6335d9a155ae7a9073808d3f70a113898209 (patch)
tree2b81556229c63dc55b59f1e551773fb34cb2d002 /cmds
parent595ecc5ec3444a81dd601cad3247eec0d22a94d5 (diff)
parent34178fa66a4a84ebc65bb6d54a800b8e0835b2d6 (diff)
downloadbase-2b9c6335d9a155ae7a9073808d3f70a113898209.tar.gz
Merge "Use readUniqueFileDescriptor in incidentd service" into udc-qpr-dev am: 34178fa66a
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/24606762 Change-Id: I0dad4f12d0f87a99af8fee11855ffba52e7edffa Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
Diffstat (limited to 'cmds')
-rw-r--r--cmds/incidentd/src/IncidentService.cpp20
1 files changed, 12 insertions, 8 deletions
diff --git a/cmds/incidentd/src/IncidentService.cpp b/cmds/incidentd/src/IncidentService.cpp
index 82c87071bfff..5ebf3e2c3047 100644
--- a/cmds/incidentd/src/IncidentService.cpp
+++ b/cmds/incidentd/src/IncidentService.cpp
@@ -502,9 +502,13 @@ status_t IncidentService::onTransact(uint32_t code, const Parcel& data, Parcel*
switch (code) {
case SHELL_COMMAND_TRANSACTION: {
- int in = data.readFileDescriptor();
- int out = data.readFileDescriptor();
- int err = data.readFileDescriptor();
+ unique_fd in, out, err;
+ if (status_t status = data.readUniqueFileDescriptor(&in); status != OK) return status;
+
+ if (status_t status = data.readUniqueFileDescriptor(&out); status != OK) return status;
+
+ if (status_t status = data.readUniqueFileDescriptor(&err); status != OK) return status;
+
int argc = data.readInt32();
Vector<String8> args;
for (int i = 0; i < argc && data.dataAvail() > 0; i++) {
@@ -517,15 +521,15 @@ status_t IncidentService::onTransact(uint32_t code, const Parcel& data, Parcel*
return BAD_VALUE;
}
- FILE* fin = fdopen(in, "r");
- FILE* fout = fdopen(out, "w");
- FILE* ferr = fdopen(err, "w");
+ FILE* fin = fdopen(in.release(), "r");
+ FILE* fout = fdopen(out.release(), "w");
+ FILE* ferr = fdopen(err.release(), "w");
if (fin == NULL || fout == NULL || ferr == NULL) {
resultReceiver->send(NO_MEMORY);
} else {
- err = command(fin, fout, ferr, args);
- resultReceiver->send(err);
+ status_t result = command(fin, fout, ferr, args);
+ resultReceiver->send(result);
}
if (fin != NULL) {