aboutsummaryrefslogtreecommitdiffhomepage
path: root/tdutils
diff options
context:
space:
mode:
authorlevlam <levlam@telegram.org>2025-10-01 03:18:38 +0300
committerlevlam <levlam@telegram.org>2025-10-01 03:18:38 +0300
commitd1487519c21d15b9dd8d4f67f6a7b8134120cced (patch)
tree48f464060029c87ee4ad700b9bfc58d4f8139b9d /tdutils
parentdbc531b7925942f70e43630ca9397dfb3d40ab52 (diff)
Check address family before marking it as valid.
Diffstat (limited to 'tdutils')
-rw-r--r--tdutils/td/utils/port/IPAddress.cpp10
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();
}