On Sat, Sep 15, 2018 at 8:28 AM Arnd Bergmann arnd@arndb.de wrote:
On Sat, Sep 15, 2018 at 7:09 AM Deepa Dinamani deepa.kernel@gmail.com wrote:
+#if defined(CONFIG_64BIT_TIME)
+COMPAT_SYSCALL_DEFINE6(pselect6_time64, int, n, compat_ulong_t __user *, inp,
compat_ulong_t __user *, outp, compat_ulong_t __user *, exp,
struct __kernel_timespec __user *, tsp, void __user *, sig)
I got a link error here since compat_sys_pselect6_time64 and compat_sys_ppoll_time64 are only defined when CONFIG_64BIT_TIME is set.
I did not think we would select this symbol on arm64, is that a mistake on my side, or should the #ifdef check be removed?
But, this is a compat syscall. When we introduced this CONFIG_64BIT_TIME we planned to use it for compat syscalls also is my understanding.
config 64BIT_TIME def_bool ARCH_HAS_64BIT_TIME help This should be selected by all architectures that need to support new system calls with a 64-bit time_t. This is relevant on all 32-bit architectures, and 64-bit architectures as part of compat syscall handling.
This means it should be set on 64 bit architechtures also right?
If we don't have the #ifdef here then we have an entry point from userspace defined and Thomas had pointed out that it was a security hole.
-Deepa