about summary refs log tree commit diff
path: root/arch/mips/bits
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2020-01-30 11:25:07 -0500
committerRich Felker <dalias@aerifal.cx>2020-01-30 11:25:07 -0500
commit5a105f19b5aae79dd302899e634b6b18b3dcd0d6 (patch)
treeb96bcfdc32cdbf4a16eaf1fea74e4c52bffd52ba /arch/mips/bits
parente6093b5a870a38ebfb3e54382acd48c698bde15d (diff)
downloadmusl-5a105f19b5aae79dd302899e634b6b18b3dcd0d6.tar.gz
musl-5a105f19b5aae79dd302899e634b6b18b3dcd0d6.tar.xz
musl-5a105f19b5aae79dd302899e634b6b18b3dcd0d6.zip
remove legacy clock_gettime and gettimeofday from public syscall.h
some nontrivial number of applications have historically performed
direct syscalls for these operations rather than using the public
functions. such usage is invalid now that time_t is 64-bit and these
syscalls no longer match the types they are used with, and it was
already harmful before (by suppressing use of vdso).

since syscall() has no type safety, incorrect usage of these syscalls
can't be caught at compile-time. so, without manually inspecting or
running additional tools to check sources, the risk of such errors
slipping through is high.

this patch renames the syscalls on 32-bit archs to clock_gettime32 and
gettimeofday_time32, so that applications using the original names
will fail to build without being fixed.

note that there are a number of other syscalls that may also be unsafe
to use directly after the time64 switchover, but (1) these are the
main two that seem to be in widespread use, and (2) most of the others
continue to have valid usage with a null timeval/timespec argument, as
the argument is an optional timeout or similar.
Diffstat (limited to 'arch/mips/bits')
-rw-r--r--arch/mips/bits/syscall.h.in4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/mips/bits/syscall.h.in b/arch/mips/bits/syscall.h.in
index 7f9afaab..e3f2de31 100644
--- a/arch/mips/bits/syscall.h.in
+++ b/arch/mips/bits/syscall.h.in
@@ -76,7 +76,7 @@
 #define __NR_setrlimit               4075
 #define __NR_getrlimit               4076
 #define __NR_getrusage               4077
-#define __NR_gettimeofday            4078
+#define __NR_gettimeofday_time32            4078
 #define __NR_settimeofday            4079
 #define __NR_getgroups               4080
 #define __NR_setgroups               4081
@@ -261,7 +261,7 @@
 #define __NR_timer_getoverrun        4260
 #define __NR_timer_delete            4261
 #define __NR_clock_settime           4262
-#define __NR_clock_gettime           4263
+#define __NR_clock_gettime32           4263
 #define __NR_clock_getres            4264
 #define __NR_clock_nanosleep         4265
 #define __NR_tgkill                  4266