Change in libosmocore[master]: Revert "Add function to guess AF_UNSPEC address"
Attention is currently required from: laforge, fixeria, msuraev. Hello Jenkins Builder, laforge, fixeria, msuraev, I'd like you to do a code review. Please visit https://gerrit.osmocom.org/c/libosmocore/+/29122 to review the following change. Change subject: Revert "Add function to guess AF_UNSPEC address" ...................................................................... Revert "Add function to guess AF_UNSPEC address" This reverts commit a4063efa7deb6632c228037c47effca22ad0f781. Reason for revert: It is not possible to guess the IP address family from uninitialized memory. This function simply glorifies random noise into an IPv6 address. It makes no sense to have it. Change-Id: Ifadd614604cf9d0c2ed1a405493c1c3fcb37ae23 --- M include/osmocom/core/sockaddr_str.h M src/sockaddr_str.c 2 files changed, 2 insertions(+), 35 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/22/29122/1 diff --git a/include/osmocom/core/sockaddr_str.h b/include/osmocom/core/sockaddr_str.h index a46ad59..f474fa0 100644 --- a/include/osmocom/core/sockaddr_str.h +++ b/include/osmocom/core/sockaddr_str.h @@ -41,7 +41,6 @@ */ int osmo_ip_str_type(const char *ip); -unsigned osmo_sockaddr_guess_unspec(const struct sockaddr *src); struct osmo_sockaddr_str { /*! AF_INET for IPv4 address, or AF_INET6 for IPv6 address. */ diff --git a/src/sockaddr_str.c b/src/sockaddr_str.c index 70927a7..9f1e897 100644 --- a/src/sockaddr_str.c +++ b/src/sockaddr_str.c @@ -184,38 +184,6 @@ return AF_UNSPEC; } -/*! Guess whether struct sockaddr with AF_UNSPEC family has valid IPv4 or IPv6 address. - * The IPv6 is tried first to take into account "IPv4 mapped addresses". - * \param[in] src Generic struct sockaddr pointer. - * \return AF_INET or AF_INET6, AF_UNSPEC or original sa_family which are unsigned type according to <sys/socket.h>. - */ -unsigned osmo_sockaddr_guess_unspec(const struct sockaddr *src) -{ - int rc; - struct osmo_sockaddr_str sa; - struct osmo_sockaddr_str *tmp = &sa; - const struct sockaddr_in6 *src6 = (const struct sockaddr_in6 *)src; - const struct sockaddr_in *src4 = (const struct sockaddr_in *)src; - - if (!src) - return AF_UNSPEC; - - if (src->sa_family != AF_UNSPEC) - return src->sa_family; - - /* IPv6? */ - rc = osmo_sockaddr_str_from_in6_addr(tmp, &src6->sin6_addr, osmo_ntohs(src6->sin6_port)); - if (rc == 0 && osmo_ip_str_type(tmp->ip) == AF_INET6) - return AF_INET6; - - /* IPv4? */ - rc = osmo_sockaddr_str_from_in_addr(tmp, &src4->sin_addr, osmo_ntohs(src4->sin_port)); - if (rc == 0 && osmo_ip_str_type(tmp->ip) == AF_INET) - return AF_INET; - - return AF_UNSPEC; -} - /*! Safely copy the given ip string to sockaddr_str, classify to AF_INET or AF_INET6. * Data will be written to sockaddr_str even if an error is returned. * \param[out] sockaddr_str The instance to copy to. @@ -349,7 +317,7 @@ return -ENOSPC; if (!src) return -EINVAL; - if (src->sin_family != AF_INET && osmo_sockaddr_guess_unspec((const struct sockaddr *)src) != AF_INET) + if (src->sin_family != AF_INET) return -EINVAL; return osmo_sockaddr_str_from_in_addr(sockaddr_str, &src->sin_addr, osmo_ntohs(src->sin_port)); } @@ -365,7 +333,7 @@ return -ENOSPC; if (!src) return -EINVAL; - if (src->sin6_family != AF_INET6 && osmo_sockaddr_guess_unspec((const struct sockaddr *)src) != AF_INET6) + if (src->sin6_family != AF_INET6) return -EINVAL; return osmo_sockaddr_str_from_in6_addr(sockaddr_str, &src->sin6_addr, osmo_ntohs(src->sin6_port)); } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/29122 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ifadd614604cf9d0c2ed1a405493c1c3fcb37ae23 Gerrit-Change-Number: 29122 Gerrit-PatchSet: 1 Gerrit-Owner: neels <nhofmeyr@sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de> Gerrit-Reviewer: laforge <laforge@osmocom.org> Gerrit-Reviewer: msuraev <msuraev@sysmocom.de> Gerrit-CC: pespin <pespin@sysmocom.de> Gerrit-Attention: laforge <laforge@osmocom.org> Gerrit-Attention: fixeria <vyanitskiy@sysmocom.de> Gerrit-Attention: msuraev <msuraev@sysmocom.de> Gerrit-MessageType: newchange
participants (1)
-
neels