X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=musl%2Fbugs.html;h=8e1d344659f42580e1e4acc8d16f4a3848f87558;hb=HEAD;hp=8f4fa460cde13bb00afb6a457fe9575360d6d93f;hpb=e5ea4673c94ea534e9d544ddfe272a6ccb8dade6;p=www
diff --git a/musl/bugs.html b/musl/bugs.html
index 8f4fa46..8e1d344 100644
--- a/musl/bugs.html
+++ b/musl/bugs.html
@@ -1,22 +1,25 @@
bugs
+
+unmaintained, moved to http://wiki.musl-libc.org/wiki/Bugs_found_by_musl
+
bugs found or refound by musl
-- pcc (integer constant expression bug) [fixed]
+
- pcc (integer constant expression bug)
- pcc (cpp bug: #define B !defined(A))
- pcc (cpp bug: macro()text)
-
- pcc (cpp bug: line reporting) [fixed]
-
- pcc (cpp bug: recursive macro) [fixed]
-
- pcc (corrupted static variable) [fixed]
-
- pcc (-Os) [fixed]
-
- pcc (makefile bug) [fixed]
-
- pcc (__builtin_nanf for -fPIC) [fixed]
-
- pcc (-print-file-name) [fixed]
-
- pcc (complex cast to double) [fixed]
-
- pcc (crtbeginT.o) [fixed]
-
- pcc (visibility=hidden, inline asm with array argument, __PIC__, pcc-libs withou -fPIC) [fixed]
-
- gcc 48825 (compiling gcc libiberty is built as target lib) [fixed]
+
- pcc (cpp bug: line reporting)
+
- pcc (cpp bug: recursive macro)
+
- pcc (corrupted static variable)
+
- pcc (-Os)
+
- pcc (makefile bug)
+
- pcc (__builtin_nanf for -fPIC)
+
- pcc (-print-file-name)
+
- pcc (complex cast to double)
+
- pcc (crtbeginT.o)
+
- pcc (visibility=hidden, inline asm with array argument, __PIC__, pcc-libs withou -fPIC)
+
- gcc 48825 (compiling gcc libiberty is built as target lib)
- binutils 12549 (--as-needed should ignore weak refs)
- binutils 12657 (binutils uses __pid_t instead of pid_t)
- glibc 12683 (race condition in pthread cancellation), article on ewontfix
@@ -25,19 +28,19 @@
- gdb 13011 (build system does not check for dl* api)
- gdb 13014 (build system does not check for thread_db api)
- glibc 13065 (race condition in pthread barriers)
-
- glibc 13080 (incorrect definition of clock_t) [wontfix]
+
- glibc 13080 (incorrect definition of clock_t)
- glibc 13151 (fmemopen does not give EOF)
- glibc 13152 (fmemopen does not honour append mode)
-
- glibc 13154 (strtol clobbers endptr on invalid base) [invalid]
+
- glibc 13154 (strtol clobbers endptr on invalid base)
- glibc 13172 (aio_suspend is not async-signal-safe)
- glibc 13234 (performance issue: non-pshared vs pshared condition vars)
- glibc 13347 (threaded setuid can incorrectly report success)
-
- glibc 13613 (broken cancellation in single-threaded process) [fixed]
-
- glibc 13837 (sin,cos argument reduction on x86) [fixed]
+
- glibc 13613 (broken cancellation in single-threaded process)
+
- glibc 13837 (sin,cos argument reduction on x86)
- binutils 13891 (binutils cannot be linked statically)
- libtool (makes static linking impossible)
-
- glibc 13959 (namespace pollution when _GNU_SOURCE is defined) [invalid]
-
- glibc 13988 (scanf %f handles +.e incorrectly) [fixed]
+
- glibc 13959 (namespace pollution when _GNU_SOURCE is defined)
+
- glibc 13988 (scanf %f handles +.e incorrectly)
- gcc 52451 (float nan comparision without raising invalid and broken -mno-ieee-fp)
- glib 672665 (race in dlsym error detection)
- glib 674446 (g_malloc aborts on allocation failure)
@@ -48,18 +51,18 @@
- gcc 52593 (builtin sqrt is not correctly rounded)
- glibc 14032 (sqrt is not correctly rounded)
- binutils 14037 (.eh_frame stripped shared lib incorrectly linked with -fPIC program)
-
- glibc 14047 (spurious ERANGE by strtof) [fixed]
+
- glibc 14047 (spurious ERANGE by strtof)
- glibc 14102 (NI_NUMERICSCOPE is missing from netdb.h)
- glibc 14147 (async cancellation mode may be spuriously set)
-
- binutils 14156 (--sort-sectio=alignment is broken) [fixed]
-
- busybox (sed bug) [fixed]
-
- glibc 14233 (test assertions are not explained) [invalid]
+
- binutils 14156 (--sort-sectio=alignment is broken)
+
- busybox (sed bug)
+
- glibc 14233 (test assertions are not explained)
- glibc 14254 (scanf warn-unused-result is not justified)
- glibc 14286 (integer overflow in vfwprintf %s)
-
- gnulib (SLOW_BUT_NO_HACKS could be a fallback) [fixed]
-
- gnulib (4bugs: freadahead, printf of invalid long double, getopt, SLOW_BUT_NO_HACKS) [fixed]
+
- gnulib (SLOW_BUT_NO_HACKS could be a fallback)
+
- gnulib (4bugs: freadahead, printf of invalid long double, getopt, SLOW_BUT_NO_HACKS)
- gcc 54232 (x86 PIC code reserves register for GOT even if there is no global data)
-
- posix 603 (request for posix_spawn with setrlimit, chdir,..) [rejected]
+
- posix 603 (request for posix_spawn with setrlimit, chdir,..)
- glibc 14485 (race condition in robust mutex unlocking)
- glibc 14511 (dlcose is unsafe)
- binutils 14512 (not-unloadable dso should be the default)
@@ -72,7 +75,7 @@
- glibc 14627 (interrupted close is non-conformant)
- gas 14640 (broken relocations for weak symbols on microblaze)
- glibc 14697 (behaviour of exit is non-conformant)
-
- qemu (broken app-level clone for microblaze) [fixed]
+
- qemu (broken app-level clone for microblaze)
- qemu (broken app-level thread cancellation)
- glibc 14744 (kill -32 cancels random thread)
- glibc 14749 (race condition with vfork in posix_spawn, address space sharing)
@@ -80,8 +83,8 @@
- gcc 55012 (protected visibility wrongly uses GOT relative addressing)
- glibc 14752 (unsafe alloca in shm_open)
- posix 610 (exit vs threads)
-
- posix 611 (exit vs locked stdio) [accepted]
-
- posix 612 (dirname of "usr/" and "/") [accepted]
+
- posix 611 (exit vs locked stdio)
+
- posix 612 (dirname of "usr/" and "/")
- posix 613 (pthread_cleanup_push and auto object lifetime)
- posix 614 (close as a cancellation point)
- posix 615 (pthread_setcancelstate should be async-signal-safe)
@@ -89,7 +92,7 @@
- posix 623 (poll should not modify fds[i].events)
- posix 624 (pthread_cleanup_pop and _push should not require a prototype)
- posix 625 (allowing alarm based sleep contradicts thread-safety)
-
- posix 626 (fflush vs memory streams) [accepted]
+
- posix 626 (fflush vs memory streams)
- posix 627 (pthread cancellation of system())
- posix 632 (pclose as a cancellation point)
- posix 633 (SIGEV_THREAD signal delivery)
@@ -99,7 +102,7 @@
- glib 687600 (gfileutils uses open through non-vararg function pointer)
- qemu (socket type mapping for mips app-level emulation is wrong)
- glibc 10815 (SIGEV_THREAD signal delivery)
-
- clang 13694 (wrong optimization with -ffreestanding) [fixed]
+
- clang 13694 (wrong optimization with -ffreestanding)
- gcc 55431 (invlid auxv search in ppc linux-unwind code)
- glibc 14829 (sched_* alter thread scheduling instead of process scheduling)
- glibc 14830 (race condition with signals and priority sched)
@@ -128,77 +131,102 @@
- glibc 15368 (raise is not async signal safe)
- posix 686 (clock() wrap around and signedness of clock_t)
- posix 689 (stdio deadlock)
+
- glibc 15448 (integer overflow in CPU_* macros in sched.h)
+
- posix 695 (atomicity of file operations)
+
- posix 703 (add errno for clock() wrap around)
+
- gcc 57258 (unused warning for volatile variables)
+
- posix 708 (thread-safety of mblen, mbtowc, and wctomb)
+
- gcc 57574 (incorrect c99 inline semantics)
+
- glibc 15615 (rand_r is biased)
+
- posix 711 (va_* macros should be async-signal-safe)
+
- posix 712 (typographic error in html)
+
- posix 713 (*quo is unspecified on error in remquo)
+
- posix 714 (yn(n,0) for negative odd n)
+
- gnulib (assuming broken fflush in cross compilation)
+
- posix 716 (process instead of thread in rename spec)
+
- glibc 15720 (stdc-predef.h defines __STDC_IEC_559_COMPLEX__)
+
- posix 728 (signal handler restrictions)
+
- sdl (SDL_CreateThread stack size is unknown and cannot be set)
bugs relevant for musl
unreported bugs
- linux procfs and writev
-
- posix: pthread.h: PTHREAD_CANCELED symbolic const is not marked as void*
-
- posix: typo in time.h: "..to access an actual object, or a progrm defines an identifier with the name.."
- posix: usage of the cx option in unistd.h
-
- posix: html error in gets.html: "get a string from a .I stdin stream"
-
- posix: remquo: quo is not specified when the return value is nan only if y is zero
-
- posix: yn(n,0) is incorrect for negative n: "If x is 0.0, -HUGE_VAL shall be returned"
- broken bre support in tre
- broken random in all bsd libc and glibc (bad seed, ub signed int arithmetics)
- search.h implementation bugs in bsd libc and glibc (stack overflow, hsearch crashes on glibc)
- several libm bugs in glibc, fdlibm (freebsd, openbsd, bionic,..)
+
- gcc fldpi, fldl2e,.. even with -frounding-math
+
- gcc -fPIC -Os generates GOT for single 32bit consts instead of using immediate value (for float on i386)
- llvm signal handler bug (not async-signal-safe, invalid use of c++, racy unmasking) in Support/Unix/Signals.inc
- llvm exit bug (destructor calls exit)
- llvm: invalid use of the address of stdin/stdout/stderr in Support/DynamicLibrary.cpp
+
- address sanitizer: various problems: stack detection, include files, ifdef, non-portable code,..
- various c++ projects: depend on constructor order of different tu (gcc 46770)
-
- various c++ projects: NULL in vararg functions without cast to the right pointer type (seen in various gnome projects)
- various projects: assume large thread stack size without setting it up (firefox,..)
- various projects: query the base pointer of the stack to do pointer arithmetics with it (libgc, firefox,...)
- calling dlopen from the constructor of global static object (firefox)
- incorrect usage of feature test macros and configure results (lots of projects)
- usage of obsolete wrong headers (sys/foo.h instead of foo.h and vice-versa, many projects)
- glibc has some missing posix symbols (found by libc-test)
+
- glibc has broken vfork on mips
+
- glibc integer overflows in time/tz code
- linux headers invoke ub by using (1 << 31) eg. MS_NOUSER in inlude/uapi/linux/fs.h
- strace: broken handling of vfork
-
-
-
-
-
-
+
- bionic: posix namespace violation, +gratuitous interface breaking
+
- bionic: broken checks in wchar.cpp mbrtowc
+
- gnutls: O_CLOEXEC
+
- arp: posix namespace collision (tm_)
+
- util-linux: cpuset.h __cpumask, etc, sys/ttydefaults.h, __sighandler_t
+
- f() instead of (f)() in configure scripts (or #undef)
+
- bionic/wchar.cpp 'if (n == 0)' is wrong, should be 'if (s == NULL)' and later 'if (n == 0) return -2'
+
- gcc vs c99 annex f issues
+
- gcc dl_iterate_phdr configure check (hard coded solaris header check + glibc/bionic/bsd ifdef + config.host overrides)
+
- libxml2 and glib: ub and several threading and allocation related bugs
misc