From 2e274cd8c1ebd0bd0c43a7f2e5433685740938ca Mon Sep 17 00:00:00 2001 From: Adhemerval Zanella Date: Fri, 4 Nov 2022 16:02:52 -0300 Subject: Linux: Add ppoll fortify symbol for 64 bit time_t (BZ# 29746) Similar to ppoll, the poll.h header needs to redirect the poll call to a proper fortified ppoll with 64 bit time_t support. The implementation is straightforward, just need to add a similar check as __poll_chk and call the 64 bit time_t ppoll version. The debug fortify tests are also extended to cover 64 bit time_t for affected ABIs. Unfortunately it requires an aditional symbol, which makes backport tricky. One possibility is to add a static inline version if compiler supports is and call abort instead of __chk_fail, so fortified version will call __poll64 in the end. Another possibility is to just remove the fortify support for _TIME_BITS=64. Checked on i686-linux-gnu. --- include/sys/poll.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/sys/poll.h b/include/sys/poll.h index f904e21..228704f 100644 --- a/include/sys/poll.h +++ b/include/sys/poll.h @@ -2,13 +2,16 @@ # include #ifndef _ISOMAC +#include + extern int __poll (struct pollfd *__fds, unsigned long int __nfds, int __timeout); libc_hidden_proto (__poll) libc_hidden_proto (ppoll) # if __TIMESIZE == 64 -# define __ppoll64 __ppoll +# define __ppoll64 ppoll +# define __ppoll64_chk __ppoll_chk # else # include # include -- cgit v1.1