diff options
| author | 2023-09-29 21:52:03 +0000 | |
|---|---|---|
| committer | 2023-09-29 21:52:03 +0000 | |
| commit | ad09415621573f9375890d394096de1e97b0e2e9 (patch) | |
| tree | 8d38f9be795cbfb76f92027df3c26da30db62bf5 | |
| parent | 8e3b54f855d1be0ad1c96a7c14db15480e3cd5fb (diff) | |
| parent | d5a8fe86ce491674fa72bc3d051b17436631bc60 (diff) | |
Merge "Use readUniqueFileDescriptor in incidentd service" into udc-dev am: 3ed8f7226c am: d5a8fe86ce
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/24606761
Change-Id: Icbf222cd2d67404699772a1a1653824fc36d8a72
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| -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) { |