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

Commit bd9305ee authored by Yabin Cui's avatar Yabin Cui Committed by Android Git Automerger
Browse files

am 0df24ea2: Merge "adb: refactor _is_valid_ack_reply_fd"

* commit '0df24ea2':
  adb: refactor _is_valid_ack_reply_fd
parents 1c7060e0 0df24ea2
Loading
Loading
Loading
Loading
+13 −8
Original line number Diff line number Diff line
@@ -939,6 +939,18 @@ static int adb_query_command(const std::string& command) {
    return 0;
}

// Disallow stdin, stdout, and stderr.
static bool _is_valid_ack_reply_fd(const int ack_reply_fd) {
#ifdef _WIN32
    const HANDLE ack_reply_handle = cast_int_to_handle(ack_reply_fd);
    return (GetStdHandle(STD_INPUT_HANDLE) != ack_reply_handle) &&
           (GetStdHandle(STD_OUTPUT_HANDLE) != ack_reply_handle) &&
           (GetStdHandle(STD_ERROR_HANDLE) != ack_reply_handle);
#else
    return ack_reply_fd > 2;
#endif
}

int adb_commandline(int argc, const char **argv) {
    int no_daemon = 0;
    int is_daemon = 0;
@@ -988,14 +1000,7 @@ int adb_commandline(int argc, const char **argv) {
            argc--;
            argv++;
            ack_reply_fd = strtol(reply_fd_str, nullptr, 10);
#ifdef _WIN32
            const HANDLE ack_reply_handle = cast_int_to_handle(ack_reply_fd);
            if ((GetStdHandle(STD_INPUT_HANDLE) == ack_reply_handle) ||
                (GetStdHandle(STD_OUTPUT_HANDLE) == ack_reply_handle) ||
                (GetStdHandle(STD_ERROR_HANDLE) == ack_reply_handle)) {
#else
            if (ack_reply_fd <= 2) { // Disallow stdin, stdout, and stderr.
#endif
            if (!_is_valid_ack_reply_fd(ack_reply_fd)) {
                fprintf(stderr, "adb: invalid reply fd \"%s\"\n", reply_fd_str);
                return usage();
            }