Loading adb/adb_auth_client.cpp +1 −3 Original line number Diff line number Diff line Loading @@ -151,9 +151,7 @@ void adb_auth_confirm_key(unsigned char* key, size_t len, atransport* t) { } static void adb_auth_listener(int fd, unsigned events, void* data) { sockaddr_storage addr; socklen_t alen = sizeof(addr); int s = adb_socket_accept(fd, reinterpret_cast<sockaddr*>(&addr), &alen); int s = adb_socket_accept(fd, nullptr, nullptr); if (s < 0) { PLOG(ERROR) << "Failed to accept"; return; Loading adb/adb_listeners.cpp +2 −11 Original line number Diff line number Diff line Loading @@ -71,10 +71,7 @@ static ListenerList& listener_list = *new ListenerList(); static void ss_listener_event_func(int _fd, unsigned ev, void *_l) { if (ev & FDE_READ) { sockaddr_storage ss; sockaddr* addrp = reinterpret_cast<sockaddr*>(&ss); socklen_t alen = sizeof(ss); int fd = adb_socket_accept(_fd, addrp, &alen); int fd = adb_socket_accept(_fd, nullptr, nullptr); if (fd < 0) return; int rcv_buf_size = CHUNK_SIZE; Loading @@ -96,13 +93,7 @@ static void listener_event_func(int _fd, unsigned ev, void* _l) asocket *s; if (ev & FDE_READ) { sockaddr_storage ss; sockaddr* addrp = reinterpret_cast<sockaddr*>(&ss); socklen_t alen; int fd; alen = sizeof(ss); fd = adb_socket_accept(_fd, addrp, &alen); int fd = adb_socket_accept(_fd, nullptr, nullptr); if (fd < 0) { return; } Loading adb/jdwp_service.cpp +1 −4 Original line number Diff line number Diff line Loading @@ -444,10 +444,7 @@ static void jdwp_control_event(int s, unsigned events, void* _control) { JdwpControl* control = (JdwpControl*)_control; if (events & FDE_READ) { sockaddr_storage ss; sockaddr* addrp = reinterpret_cast<sockaddr*>(&ss); socklen_t addrlen = sizeof(ss); int s = adb_socket_accept(control->listen_socket, addrp, &addrlen); int s = adb_socket_accept(control->listen_socket, nullptr, nullptr); if (s < 0) { if (errno == ECONNABORTED) { /* oops, the JDWP process died really quick */ Loading adb/sysdeps.h +4 −0 Original line number Diff line number Diff line Loading @@ -285,6 +285,10 @@ extern int adb_socket_accept(int serverfd, struct sockaddr* addr, socklen_t #undef accept #define accept ___xxx_accept int adb_getsockname(int fd, struct sockaddr* sockaddr, socklen_t* optlen); #undef getsockname #define getsockname(...) ___xxx_getsockname(__VA__ARGS__) // Returns the local port number of a bound socket, or -1 on failure. int adb_socket_get_local_port(int fd); Loading adb/sysdeps_win32.cpp +27 −2 Original line number Diff line number Diff line Loading @@ -1061,7 +1061,7 @@ int adb_getsockname(int fd, struct sockaddr* sockaddr, socklen_t* optlen) { return -1; } int result = getsockname(fh->fh_socket, sockaddr, optlen); int result = (getsockname)(fh->fh_socket, sockaddr, optlen); if (result == SOCKET_ERROR) { const DWORD err = WSAGetLastError(); D("adb_getsockname: setsockopt on fd %d failed: %s\n", fd, Loading Loading @@ -1119,6 +1119,11 @@ int adb_socketpair(int sv[2]) { int local_port = -1; std::string error; struct sockaddr_storage peer_addr = {}; struct sockaddr_storage client_addr = {}; socklen_t peer_socklen = sizeof(peer_addr); socklen_t client_socklen = sizeof(client_addr); server = network_loopback_server(0, SOCK_STREAM, &error); if (server < 0) { D("adb_socketpair: failed to create server: %s", error.c_str()); Loading @@ -1138,12 +1143,32 @@ int adb_socketpair(int sv[2]) { goto fail; } accepted = adb_socket_accept(server, nullptr, nullptr); // Make sure that the peer that connected to us and the client are the same. accepted = adb_socket_accept(server, reinterpret_cast<sockaddr*>(&peer_addr), &peer_socklen); if (accepted < 0) { D("adb_socketpair: failed to accept: %s", strerror(errno)); goto fail; } if (adb_getsockname(client, reinterpret_cast<sockaddr*>(&client_addr), &client_socklen) != 0) { D("adb_socketpair: failed to getpeername: %s", strerror(errno)); goto fail; } if (peer_socklen != client_socklen) { D("adb_socketpair: client and peer sockaddrs have different lengths"); errno = EIO; goto fail; } if (memcmp(&peer_addr, &client_addr, peer_socklen) != 0) { D("adb_socketpair: client and peer sockaddrs don't match"); errno = EIO; goto fail; } adb_close(server); sv[0] = client; sv[1] = accepted; return 0; Loading Loading
adb/adb_auth_client.cpp +1 −3 Original line number Diff line number Diff line Loading @@ -151,9 +151,7 @@ void adb_auth_confirm_key(unsigned char* key, size_t len, atransport* t) { } static void adb_auth_listener(int fd, unsigned events, void* data) { sockaddr_storage addr; socklen_t alen = sizeof(addr); int s = adb_socket_accept(fd, reinterpret_cast<sockaddr*>(&addr), &alen); int s = adb_socket_accept(fd, nullptr, nullptr); if (s < 0) { PLOG(ERROR) << "Failed to accept"; return; Loading
adb/adb_listeners.cpp +2 −11 Original line number Diff line number Diff line Loading @@ -71,10 +71,7 @@ static ListenerList& listener_list = *new ListenerList(); static void ss_listener_event_func(int _fd, unsigned ev, void *_l) { if (ev & FDE_READ) { sockaddr_storage ss; sockaddr* addrp = reinterpret_cast<sockaddr*>(&ss); socklen_t alen = sizeof(ss); int fd = adb_socket_accept(_fd, addrp, &alen); int fd = adb_socket_accept(_fd, nullptr, nullptr); if (fd < 0) return; int rcv_buf_size = CHUNK_SIZE; Loading @@ -96,13 +93,7 @@ static void listener_event_func(int _fd, unsigned ev, void* _l) asocket *s; if (ev & FDE_READ) { sockaddr_storage ss; sockaddr* addrp = reinterpret_cast<sockaddr*>(&ss); socklen_t alen; int fd; alen = sizeof(ss); fd = adb_socket_accept(_fd, addrp, &alen); int fd = adb_socket_accept(_fd, nullptr, nullptr); if (fd < 0) { return; } Loading
adb/jdwp_service.cpp +1 −4 Original line number Diff line number Diff line Loading @@ -444,10 +444,7 @@ static void jdwp_control_event(int s, unsigned events, void* _control) { JdwpControl* control = (JdwpControl*)_control; if (events & FDE_READ) { sockaddr_storage ss; sockaddr* addrp = reinterpret_cast<sockaddr*>(&ss); socklen_t addrlen = sizeof(ss); int s = adb_socket_accept(control->listen_socket, addrp, &addrlen); int s = adb_socket_accept(control->listen_socket, nullptr, nullptr); if (s < 0) { if (errno == ECONNABORTED) { /* oops, the JDWP process died really quick */ Loading
adb/sysdeps.h +4 −0 Original line number Diff line number Diff line Loading @@ -285,6 +285,10 @@ extern int adb_socket_accept(int serverfd, struct sockaddr* addr, socklen_t #undef accept #define accept ___xxx_accept int adb_getsockname(int fd, struct sockaddr* sockaddr, socklen_t* optlen); #undef getsockname #define getsockname(...) ___xxx_getsockname(__VA__ARGS__) // Returns the local port number of a bound socket, or -1 on failure. int adb_socket_get_local_port(int fd); Loading
adb/sysdeps_win32.cpp +27 −2 Original line number Diff line number Diff line Loading @@ -1061,7 +1061,7 @@ int adb_getsockname(int fd, struct sockaddr* sockaddr, socklen_t* optlen) { return -1; } int result = getsockname(fh->fh_socket, sockaddr, optlen); int result = (getsockname)(fh->fh_socket, sockaddr, optlen); if (result == SOCKET_ERROR) { const DWORD err = WSAGetLastError(); D("adb_getsockname: setsockopt on fd %d failed: %s\n", fd, Loading Loading @@ -1119,6 +1119,11 @@ int adb_socketpair(int sv[2]) { int local_port = -1; std::string error; struct sockaddr_storage peer_addr = {}; struct sockaddr_storage client_addr = {}; socklen_t peer_socklen = sizeof(peer_addr); socklen_t client_socklen = sizeof(client_addr); server = network_loopback_server(0, SOCK_STREAM, &error); if (server < 0) { D("adb_socketpair: failed to create server: %s", error.c_str()); Loading @@ -1138,12 +1143,32 @@ int adb_socketpair(int sv[2]) { goto fail; } accepted = adb_socket_accept(server, nullptr, nullptr); // Make sure that the peer that connected to us and the client are the same. accepted = adb_socket_accept(server, reinterpret_cast<sockaddr*>(&peer_addr), &peer_socklen); if (accepted < 0) { D("adb_socketpair: failed to accept: %s", strerror(errno)); goto fail; } if (adb_getsockname(client, reinterpret_cast<sockaddr*>(&client_addr), &client_socklen) != 0) { D("adb_socketpair: failed to getpeername: %s", strerror(errno)); goto fail; } if (peer_socklen != client_socklen) { D("adb_socketpair: client and peer sockaddrs have different lengths"); errno = EIO; goto fail; } if (memcmp(&peer_addr, &client_addr, peer_socklen) != 0) { D("adb_socketpair: client and peer sockaddrs don't match"); errno = EIO; goto fail; } adb_close(server); sv[0] = client; sv[1] = accepted; return 0; Loading