diff options
| author | 2023-09-29 20:38:03 +0000 | |
|---|---|---|
| committer | 2023-09-29 20:38:03 +0000 | |
| commit | aa008ea9e3e9fa11f7d1b960b8097c4bcf16209b (patch) | |
| tree | 0736fa8860dc62f49d9f9de46dded5f36059a0b3 | |
| parent | 2058e088e11f3b542dc03985a6c27fd58b82a739 (diff) | |
| parent | 3ed8f7226c2d9263d90b2ad66bb00ea2d06a830e (diff) | |
Merge "Use readUniqueFileDescriptor in incidentd service" into udc-dev am: 3ed8f7226c
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/24606761
Change-Id: Ie8922006e7e4c56402e5a3482de3171722c81c40
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) { |