glibc 2.32 leaks errno in sched_rr_get_interval fallback
| Affects | Status | Importance | Assigned to | Milestone | |
|---|---|---|---|---|---|
| GLibC |
Invalid
|
Medium
|
|||
| glibc (Ubuntu) |
Invalid
|
Low
|
Unassigned | ||
| Groovy |
Invalid
|
Low
|
Unassigned | ||
| unhide (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
| Groovy |
Fix Released
|
Undecided
|
Unassigned | ||
Bug Description
root@autopkgtes
execve("./a.out", ["./a.out"], 0xfff2c8a0 /* 12 vars */) = 0
brk(NULL) = 0x1942000
uname({
access(
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|
fstat64(3, {st_mode=
mmap2(NULL, 24113, PROT_READ, MAP_PRIVATE, 3, 0) = 0xf78ec000
close(3) = 0
openat(AT_FDCWD, "/lib/arm-
read(3, "\177ELF\
fstat64(3, {st_mode=
mmap2(NULL, 8192, PROT_READ|
mmap2(NULL, 1054788, PROT_READ|
mprotect(
mmap2(0xf78c2000, 16384, PROT_READ|
mmap2(0xf78c6000, 6212, PROT_READ|
close(3) = 0
set_tls(0xf78eac90) = 0
mprotect(
mprotect(0x81b000, 4096, PROT_READ) = 0
mprotect(
munmap(0xf78ec000, 24113) = 0
sched_rr_
sched_rr_
dup(2) = 3
fcntl64(3, F_GETFL) = 0x402 (flags O_RDWR|O_APPEND)
brk(NULL) = 0x1942000
brk(0x1963000) = 0x1963000
fstat64(3, {st_mode=
write(3, "error: Function not implemented\n", 32error: Function not implemented
) = 32
close(3) = 0
exit_group(0) = ?
+++ exited with 0 +++
root@autopkgtes
#include <stdio.h>
#include <errno.h>
#include <sched.h>
int main() {
struct timespec tp;
errno = 0;
sched_
perror("error");
return 0;
}
When sched_rr_
This breaks 'unhide quick' and a few other unhide commands giving false positives as a result.
The problem is observed only on armhf testbeds.
| Changed in glibc (Ubuntu): | |
| importance: | Undecided → Critical |
| importance: | Critical → Medium |
| Changed in unhide (Ubuntu Groovy): | |
| milestone: | none → ubuntu-20.10 |
| Changed in glibc (Ubuntu Groovy): | |
| milestone: | none → ubuntu-20.10 |
| Changed in glibc: | |
| importance: | Unknown → Medium |
| status: | Unknown → Invalid |
| Changed in glibc (Ubuntu): | |
| importance: | Medium → Low |
| Changed in glibc (Ubuntu Groovy): | |
| importance: | Medium → Low |
| Changed in glibc (Ubuntu): | |
| status: | New → Invalid |
| Changed in glibc (Ubuntu Groovy): | |
| status: | New → Invalid |

vorlon | ok, agreed that it's not critical for glibc, feel free to untarget