diff options
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/gnu/net/if.h | 4 | ||||
-rw-r--r-- | sysdeps/mach/hurd/if_index.c | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/if_index.c | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/test-errno-linux.c | 12 |
4 files changed, 17 insertions, 3 deletions
diff --git a/sysdeps/gnu/net/if.h b/sysdeps/gnu/net/if.h index 61e6bc2527..79d3c88512 100644 --- a/sysdeps/gnu/net/if.h +++ b/sysdeps/gnu/net/if.h @@ -191,7 +191,9 @@ __BEGIN_DECLS /* Convert an interface name to an index, and vice versa. */ extern unsigned int if_nametoindex (const char *__ifname) __THROW; -extern char *if_indextoname (unsigned int __ifindex, char *__ifname) __THROW; +extern char *if_indextoname (unsigned int __ifindex, + char __ifname[IF_NAMESIZE]) __THROW + __attr_access ((__write_only__, 2)); /* Return a list of all interfaces and their indices. */ extern struct if_nameindex *if_nameindex (void) __THROW; diff --git a/sysdeps/mach/hurd/if_index.c b/sysdeps/mach/hurd/if_index.c index 56e63a4a92..0eab510453 100644 --- a/sysdeps/mach/hurd/if_index.c +++ b/sysdeps/mach/hurd/if_index.c @@ -166,7 +166,7 @@ libc_hidden_weak (if_nameindex) IFNAME (which has space for at least IFNAMSIZ characters). Return IFNAME, or NULL on error. */ char * -__if_indextoname (unsigned int ifindex, char *ifname) +__if_indextoname (unsigned int ifindex, char ifname[IF_NAMESIZE]) { struct ifreq ifr; int fd = __opensock (); diff --git a/sysdeps/unix/sysv/linux/if_index.c b/sysdeps/unix/sysv/linux/if_index.c index 70a16a69c4..d38340bb64 100644 --- a/sysdeps/unix/sysv/linux/if_index.c +++ b/sysdeps/unix/sysv/linux/if_index.c @@ -215,7 +215,7 @@ libc_hidden_weak (if_nameindex) char * -__if_indextoname (unsigned int ifindex, char *ifname) +__if_indextoname (unsigned int ifindex, char ifname[IF_NAMESIZE]) { /* We may be able to do the conversion directly, rather than searching a list. This ioctl is not present in kernels before version 2.1.50. */ diff --git a/sysdeps/unix/sysv/linux/test-errno-linux.c b/sysdeps/unix/sysv/linux/test-errno-linux.c index d63836e584..65fb90f9fc 100644 --- a/sysdeps/unix/sysv/linux/test-errno-linux.c +++ b/sysdeps/unix/sysv/linux/test-errno-linux.c @@ -44,6 +44,7 @@ #include <sys/time.h> #include <sys/types.h> #include <sys/wait.h> +#include <libc-diag.h> /* This is not an exhaustive test: only system calls that can be persuaded to fail with a consistent error code and no side effects @@ -171,7 +172,18 @@ do_test (void) allocation. */ fails |= test_wrp2 (LIST (EINVAL, ENOMEM), mlock, (void *) -1, 1); fails |= test_wrp (EINVAL, nanosleep, &ts, &ts); + + DIAG_POP_NEEDS_COMMENT; + +#if __GNUC_PREREQ (9, 0) + /* Suppress valid GCC warning: + 'poll' specified size 18446744073709551608 exceeds maximum object size + */ + DIAG_IGNORE_NEEDS_COMMENT (9, "-Wstringop-overflow="); +#endif fails |= test_wrp (EINVAL, poll, &pollfd, -1, 0); + DIAG_POP_NEEDS_COMMENT; + /* quotactl returns ENOSYS for kernels not configured with CONFIG_QUOTA, and may return EPERM if called within certain types of containers. Linux 5.4 added additional argument validation |