Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d31df3a1 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "adbd: receive jdwp pids from art as raw integers."

parents cd66e4c6 86f39b40
Loading
Loading
Loading
Loading
+4 −15
Original line number Diff line number Diff line
@@ -124,9 +124,6 @@
 ** for each JDWP process, we record its pid and its connected socket
 **/

// PIDs are transmitted as 4 hex digits in ascii.
static constexpr size_t PID_LEN = 4;

static void jdwp_process_event(int socket, unsigned events, void* _proc);
static void jdwp_process_list_updated(void);

@@ -174,7 +171,7 @@ struct JdwpProcess {
        _jdwp_list.remove_if(pred);
    }

    int pid = -1;
    int32_t pid = -1;
    int socket = -1;
    fdevent* fde = nullptr;

@@ -221,17 +218,9 @@ static void jdwp_process_event(int socket, unsigned events, void* _proc) {

    if (events & FDE_READ) {
        if (proc->pid < 0) {
            /* read the PID as a 4-hexchar string */
            char buf[PID_LEN + 1];
            ssize_t rc = TEMP_FAILURE_RETRY(recv(socket, buf, PID_LEN, 0));
            if (rc != PID_LEN) {
                D("failed to read jdwp pid: %s", strerror(errno));
                goto CloseProcess;
            }
            buf[PID_LEN] = '\0';

            if (sscanf(buf, "%04x", &proc->pid) != 1) {
                D("could not decode JDWP %p PID number: '%s'", proc, buf);
            ssize_t rc = TEMP_FAILURE_RETRY(recv(socket, &proc->pid, sizeof(proc->pid), 0));
            if (rc != sizeof(proc->pid)) {
                D("failed to read jdwp pid: rc = %zd, errno = %s", rc, strerror(errno));
                goto CloseProcess;
            }