diff options
author | Aurelien Jarno <aurelien@aurel32.net> | 2019-09-14 18:22:52 +0200 |
---|---|---|
committer | Andreas K. Hüttel <dilfridge@gentoo.org> | 2019-11-25 01:56:07 +0100 |
commit | 6a4ba283ef66021bf501e07e9d3578580e755da0 (patch) | |
tree | fab75d0657f680937b2a00a45f2d5fd22e923d2b | |
parent | Improve performance of memmem (diff) | |
download | glibc-6a4ba283ef66021bf501e07e9d3578580e755da0.tar.gz glibc-6a4ba283ef66021bf501e07e9d3578580e755da0.tar.bz2 glibc-6a4ba283ef66021bf501e07e9d3578580e755da0.zip |
alpha: force old OSF1 syscalls for getegid, geteuid and getppid [BZ #24986]
On alpha, Linux kernel 5.1 added the standard getegid, geteuid and
getppid syscalls (commit ecf7e0a4ad15287). Up to now alpha was using
the corresponding OSF1 syscalls through:
- sysdeps/unix/alpha/getegid.S
- sysdeps/unix/alpha/geteuid.S
- sysdeps/unix/alpha/getppid.S
When building against kernel headers >= 5.1, the glibc now use the new
syscalls through sysdeps/unix/sysv/linux/syscalls.list. When it is then
used with an older kernel, the corresponding 3 functions fail.
A quick fix is to move the OSF1 wrappers under the
sysdeps/unix/sysv/linux/alpha directory so they override the standard
linux ones. A better fix would be to try the new syscalls and fallback
to the old OSF1 in case the new ones fail. This can be implemented in
a later commit.
Changelog:
[BZ #24986]
* sysdeps/unix/alpha/getegid.S: Move to ...
* sysdeps/unix/sysv/linux/alpha/getegid.S: ... here.
* sysdeps/unix/alpha/geteuid.S: Move to ...
* sysdeps/unix/sysv/linux/alpha/geteuid.S: ... here.
* sysdeps/unix/alpha/getppid.S: Move to ...
* sysdeps/unix/sysv/linux/alpha/getppid.S: ... here
(cherry picked from commit a132a2c305f91e4f85de00566f308eae8d95d8bf)
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/alpha/getegid.S (renamed from sysdeps/unix/alpha/getegid.S) | 0 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/alpha/geteuid.S (renamed from sysdeps/unix/alpha/geteuid.S) | 0 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/alpha/getppid.S (renamed from sysdeps/unix/alpha/getppid.S) | 0 |
5 files changed, 12 insertions, 0 deletions
@@ -1,3 +1,13 @@ +2019-09-14 Aurelien Jarno <aurelien@aurel32.net> + + [BZ #24986] + * sysdeps/unix/alpha/getegid.S: Move to ... + * sysdeps/unix/sysv/linux/alpha/getegid.S: ... here. + * sysdeps/unix/alpha/geteuid.S: Move to ... + * sysdeps/unix/sysv/linux/alpha/geteuid.S: ... here. + * sysdeps/unix/alpha/getppid.S: Move to ... + * sysdeps/unix/sysv/linux/alpha/getppid.S: ... here + 2019-09-13 Wilco Dijkstra <wdijkstr@arm.com> * string/memmem.c (__memmem): Rewrite to improve performance. @@ -33,6 +33,8 @@ The following bugs are resolved with this release: [24228] old x86 applications that use legacy libio crash on exit [24476] dlfcn: Guard __dlerror_main_freeres with __libc_once_get (once) [24744] io: Remove the copy_file_range emulation + [24986] alpha: new getegid, geteuid and getppid syscalls used + unconditionally Security related changes: diff --git a/sysdeps/unix/alpha/getegid.S b/sysdeps/unix/sysv/linux/alpha/getegid.S index 167009d17a..167009d17a 100644 --- a/sysdeps/unix/alpha/getegid.S +++ b/sysdeps/unix/sysv/linux/alpha/getegid.S diff --git a/sysdeps/unix/alpha/geteuid.S b/sysdeps/unix/sysv/linux/alpha/geteuid.S index 39413779f7..39413779f7 100644 --- a/sysdeps/unix/alpha/geteuid.S +++ b/sysdeps/unix/sysv/linux/alpha/geteuid.S diff --git a/sysdeps/unix/alpha/getppid.S b/sysdeps/unix/sysv/linux/alpha/getppid.S index 4d291181bd..4d291181bd 100644 --- a/sysdeps/unix/alpha/getppid.S +++ b/sysdeps/unix/sysv/linux/alpha/getppid.S |