aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2022-11-04 16:02:52 -0300
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2022-11-08 13:37:06 -0300
commit2e274cd8c1ebd0bd0c43a7f2e5433685740938ca (patch)
treeac3f69747db62b0444960f54f559e0d5359fac69 /include
parent19934d629ee22bbd332f04da4320e4f624c9560c (diff)
downloadglibc-2e274cd8c1ebd0bd0c43a7f2e5433685740938ca.zip
glibc-2e274cd8c1ebd0bd0c43a7f2e5433685740938ca.tar.gz
glibc-2e274cd8c1ebd0bd0c43a7f2e5433685740938ca.tar.bz2
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.
Diffstat (limited to 'include')
-rw-r--r--include/sys/poll.h5
1 files changed, 4 insertions, 1 deletions
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 <io/sys/poll.h>
#ifndef _ISOMAC
+#include <include/struct___timespec64.h>
+
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 <time.h>
# include <signal.h>