aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrédéric Bérat <fberat@redhat.com>2025-03-07 14:42:26 +0100
committerFrédéric Bérat <fberat@redhat.com>2025-03-21 09:35:16 +0100
commit84373ef7b72c9c8ab61ce1fdfd798777715a1a52 (patch)
tree2712a37ae318e7c9bbd2055aa044b287896d3eeb
parentc5113a838b28a8894da19794ca7a69c5ace959a3 (diff)
downloadglibc-84373ef7b72c9c8ab61ce1fdfd798777715a1a52.tar.xz
glibc-84373ef7b72c9c8ab61ce1fdfd798777715a1a52.zip
Prepare inet_ntop to be fortified
Rename inet_ntop to __inet_ntop and create the inet_ntop weak alias based on it in order to prepare for disabling fortification when available. Reviewed-by: Florian Weimer <fweimer@redhat.com>
-rw-r--r--include/arpa/inet.h4
-rw-r--r--nss/getnameinfo.c4
-rw-r--r--resolv/inet_ntop.c7
3 files changed, 9 insertions, 6 deletions
diff --git a/include/arpa/inet.h b/include/arpa/inet.h
index df9472ba3b..d1ea13bb19 100644
--- a/include/arpa/inet.h
+++ b/include/arpa/inet.h
@@ -5,7 +5,9 @@
extern int __inet_aton_exact (const char *__cp, struct in_addr *__inp);
libc_hidden_proto (__inet_aton_exact)
-libc_hidden_proto (inet_ntop)
+extern __typeof (inet_ntop) __inet_ntop;
+libc_hidden_proto (__inet_ntop)
+
libc_hidden_proto (inet_pton)
extern __typeof (inet_pton) __inet_pton;
libc_hidden_proto (__inet_pton)
diff --git a/nss/getnameinfo.c b/nss/getnameinfo.c
index c3b46e712b..0db06c4ae8 100644
--- a/nss/getnameinfo.c
+++ b/nss/getnameinfo.c
@@ -338,7 +338,7 @@ gni_host_inet_numeric (struct scratch_buffer *tmpbuf,
if (sa->sa_family == AF_INET6)
{
const struct sockaddr_in6 *sin6p = (const struct sockaddr_in6 *) sa;
- if (inet_ntop (AF_INET6, &sin6p->sin6_addr, host, hostlen) == NULL)
+ if (__inet_ntop (AF_INET6, &sin6p->sin6_addr, host, hostlen) == NULL)
return EAI_OVERFLOW;
uint32_t scopeid = sin6p->sin6_scope_id;
@@ -365,7 +365,7 @@ gni_host_inet_numeric (struct scratch_buffer *tmpbuf,
else
{
const struct sockaddr_in *sinp = (const struct sockaddr_in *) sa;
- if (inet_ntop (AF_INET, &sinp->sin_addr, host, hostlen) == NULL)
+ if (__inet_ntop (AF_INET, &sinp->sin_addr, host, hostlen) == NULL)
return EAI_OVERFLOW;
}
return 0;
diff --git a/resolv/inet_ntop.c b/resolv/inet_ntop.c
index c4d38c0f95..acf5f3cb88 100644
--- a/resolv/inet_ntop.c
+++ b/resolv/inet_ntop.c
@@ -42,7 +42,7 @@ static const char *inet_ntop4 (const u_char *src, char *dst, socklen_t size);
static const char *inet_ntop6 (const u_char *src, char *dst, socklen_t size);
/* char *
- * inet_ntop(af, src, dst, size)
+ * __inet_ntop(af, src, dst, size)
* convert a network format address to presentation format.
* return:
* pointer to presentation format address (`dst'), or NULL (see errno).
@@ -50,7 +50,7 @@ static const char *inet_ntop6 (const u_char *src, char *dst, socklen_t size);
* Paul Vixie, 1996.
*/
const char *
-inet_ntop (int af, const void *src, char *dst, socklen_t size)
+__inet_ntop (int af, const void *src, char *dst, socklen_t size)
{
switch (af) {
case AF_INET:
@@ -63,7 +63,8 @@ inet_ntop (int af, const void *src, char *dst, socklen_t size)
}
/* NOTREACHED */
}
-libc_hidden_def (inet_ntop)
+libc_hidden_def (__inet_ntop)
+weak_alias (__inet_ntop, inet_ntop)
/* const char *
* inet_ntop4(src, dst, size)