diff options
| author | 2023-06-20 23:23:40 +0000 | |
|---|---|---|
| committer | 2023-06-20 23:23:40 +0000 | |
| commit | ef9bd14e0025eabf0ea27f57892dc888de33aab6 (patch) | |
| tree | 7a8d72cf6495d8ee67b874c375c743b92ad00c8f | |
| parent | 8317d3704ad7d8c4a46dd41d14ae054dcb39121c (diff) | |
| parent | ba78ef276951269f7b024baebdf1b8fa40bedb23 (diff) | |
Merge "Use readUniqueFileDescriptor in incidentd service"
| -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 05a43ad7d936..4f9059f02281 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) { |