[PATCH] alpha: Fix gethostname errno for a too-small buffer

Florian Weimer fw@deneb.enyo.de
Sun Aug 9 21:01:02 GMT 2026


* Magnus Lindholm:

> alpha is the only target that implements gethostname with the syscall
> rather than through uname, and it reports EOVERFLOW when the name does
> not fit.  Every other target, gethostname(2) and misc/tst-gethostname
> expect ENAMETOOLONG:
>
>   tst-gethostname.c:96: numeric comparison failure
>      left: 112 (0x70, EOVERFLOW); from: errno
>     right: 63 (0x3f); from: ENAMETOOLONG
>
> The kernel already truncates the name and fills the buffer, so only the
> errno value changes. misc/tst-gethostname passes on alpha with this.
>
> Signed-off-by: Magnus Lindholm <linmag7@gmail.com>
> ---
>  sysdeps/unix/sysv/linux/alpha/gethostname.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/sysdeps/unix/sysv/linux/alpha/gethostname.c b/sysdeps/unix/sysv/linux/alpha/gethostname.c
> index d2bd213c24..b7ac91bb30 100644
> --- a/sysdeps/unix/sysv/linux/alpha/gethostname.c
> +++ b/sysdeps/unix/sysv/linux/alpha/gethostname.c
> @@ -34,7 +34,7 @@ __gethostname (char *name, size_t len)
>  	 an error.  */
>        && memchr (name, '\0', len) == NULL)
>      {
> -      __set_errno (EOVERFLOW);
> +      __set_errno (ENAMETOOLONG);
>        result = -1;
>      }

What happens if you delete the function?  Won't the uname-based
variant just work?


More information about the Libc-alpha mailing list