diff options
author | Yao Chen <yaochen@google.com> | 2023-09-29 18:39:13 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-09-29 18:39:13 +0000 |
commit | 2b9c6335d9a155ae7a9073808d3f70a113898209 (patch) | |
tree | 2b81556229c63dc55b59f1e551773fb34cb2d002 /cmds | |
parent | 595ecc5ec3444a81dd601cad3247eec0d22a94d5 (diff) | |
parent | 34178fa66a4a84ebc65bb6d54a800b8e0835b2d6 (diff) | |
download | base-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.cpp | 20 |
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) { |