diff options
| author | levlam <levlam@telegram.org> | 2025-10-01 03:18:38 +0300 |
|---|---|---|
| committer | levlam <levlam@telegram.org> | 2025-10-01 03:18:38 +0300 |
| commit | d1487519c21d15b9dd8d4f67f6a7b8134120cced (patch) | |
| tree | 48f464060029c87ee4ad700b9bfc58d4f8139b9d /tdutils | |
| parent | dbc531b7925942f70e43630ca9397dfb3d40ab52 (diff) | |
Check address family before marking it as valid.
Diffstat (limited to 'tdutils')
| -rw-r--r-- | tdutils/td/utils/port/IPAddress.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/tdutils/td/utils/port/IPAddress.cpp b/tdutils/td/utils/port/IPAddress.cpp index b930f9c80..ae2a9df3b 100644 --- a/tdutils/td/utils/port/IPAddress.cpp +++ b/tdutils/td/utils/port/IPAddress.cpp @@ -510,6 +510,11 @@ Status IPAddress::init_socket_address(const SocketFd &socket_fd) { return OS_SOCKET_ERROR("Failed to get socket address"); } is_valid_ = true; + auto address_family = get_address_family(); + if (address_family != AF_INET && address_family != AF_INET6) { + is_valid_ = false; + return Status::Error("Receive unsupported IP address"); + } return Status::OK(); } @@ -525,6 +530,11 @@ Status IPAddress::init_peer_address(const SocketFd &socket_fd) { return OS_SOCKET_ERROR("Failed to get peer socket address"); } is_valid_ = true; + auto address_family = get_address_family(); + if (address_family != AF_INET && address_family != AF_INET6) { + is_valid_ = false; + return Status::Error("Receive unsupported IP address"); + } return Status::OK(); } |
