about summary refs log tree commit diff
path: root/sysdeps/unix
Commit message (Collapse)AuthorAgeFilesLines
* CVE-2013-4237, BZ #14699: Buffer overflow in readdir_rFlorian Weimer2013-08-162-2/+0
| | | | | | | | | | | | | | | | | | | | * sysdeps/posix/dirstream.h (struct __dirstream): Add errcode member. * sysdeps/posix/opendir.c (__alloc_dir): Initialize errcode member. * sysdeps/posix/rewinddir.c (rewinddir): Reset errcode member. * sysdeps/posix/readdir_r.c (__READDIR_R): Enforce NAME_MAX limit. Return delayed error code. Remove GETDENTS_64BIT_ALIGNED conditional. * sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c: Do not define GETDENTS_64BIT_ALIGNED. * sysdeps/unix/sysv/linux/i386/readdir64_r.c: Likewise. * manual/filesys.texi (Reading/Closing Directory): Document ENAMETOOLONG return value of readdir_r. Recommend readdir more strongly. * manual/conf.texi (Limits for Files): Add portability note to NAME_MAX, PATH_MAX. (Pathconf): Add portability note for _PC_NAME_MAX, _PC_PATH_MAX.
* PowerPC: use _dl_static_init to set GLRO(gl_pagesize)Adhemerval Zanella2013-07-234-0/+129
| | | | | | This patch fixes dlfcn/tststatic5 for PowerPC where pagesize variable was not properly initialized in certain cases. This patch is based on other architecture code.
* CVE-2013-2207, BZ #15755: Disable pt_chown.Carlos O'Donell2013-07-212-5/+8
| | | | | | | | | | | | | | | | | | | | | | | The helper binary pt_chown tricked into granting access to another user's pseudo-terminal. Pre-conditions for the attack: * Attacker with local user account * Kernel with FUSE support * "user_allow_other" in /etc/fuse.conf * Victim with allocated slave in /dev/pts Using the setuid installed pt_chown and a weak check on whether a file descriptor is a tty, an attacker could fake a pty check using FUSE and trick pt_chown to grant ownership of a pty descriptor that the current user does not own. It cannot access /dev/pts/ptmx however. In most modern distributions pt_chown is not needed because devpts is enabled by default. The fix for this CVE is to disable building and using pt_chown by default. We still provide a configure option to enable hte use of pt_chown but distributions do so at their own risk.
* BZ #15711: Avoid circular dependency for syscall.hCarlos O'Donell2013-07-161-2/+9
| | | | | | | | | | | | | | | | | | The generated header is compiled with `-ffreestanding' to avoid any circular dependencies against the installed implementation headers. Such a dependency would require the implementation header to be installed before the generated header could be built (See bug 15711). In current practice the generated header dependencies do not include any of the implementation headers removed by the use of `-ffreestanding'. --- 2013-07-15 Carlos O'Donell <carlos@redhat.com> [BZ #15711] * sysdeps/unix/sysv/linux/Makefile ($(objpfx)bits/syscall%h): Avoid system header dependency with -ffreestanding. ($(objpfx)bits/syscall%d): Likewise.
* Sync sys/ptrace with Linux 3.10Andreas Jaeger2013-07-044-5/+80
|
* Add GLRO(dl_hwcap2) for new AT_HWCAP2 auxv_t a_type.Ryan S. Arnold2013-06-282-2/+10
|
* Consistently use page_shift in sysdeps/unix/sysv/linux/mmap64.c.Joseph Myers2013-06-281-1/+1
|
* PowerPC: Enable POWER8 platform sans hwcap bits.Ryan S. Arnold2013-06-242-0/+4
|
* Include <string.h> in sysdeps/unix/sysv/linux/libc_fatal.c.Joseph Myers2013-06-221-0/+1
|
* New API to set default thread attributesSiddhesh Poyarekar2013-06-1510-0/+40
| | | | | | | This patch introduces two new convenience functions to set the default thread attributes used for creating threads. This allows a programmer to set the default thread attributes just once in a process and then run pthread_create without additional attributes.
* Improve precision of clock() function on LinuxSiddhesh Poyarekar2013-06-131-20/+16
| | | | | | | Resolves #12515. Use CLOCK_PROCESS_CPUTIME_ID instead of times to get better precision in the value returned by clock.
* Fix symbol definitions for __clock_* functionsSiddhesh Poyarekar2013-06-115-12/+13
| | | | | | __clock_gettime and other __clock_* functions could result in an extra PLT reference within libc.so if it actually gets used. None of the code currently uses them, which is why this probably went unnoticed.
* Use (void) in no-arguments function definitions.Joseph Myers2013-06-086-9/+9
|
* Fix leading whitespaces.Ondrej Bilka2013-06-062-2/+2
|
* Remove trailing whitespace.Joseph Myers2013-06-0530-71/+71
|
* Update bits/siginfo.h with Linux hwpoison SIGBUS changesEdjunior Barbosa Machado2013-05-223-3/+21
| | | | | | Adds new SIGBUS error codes for hardware poison signals, syncing with the current kernel headers (v3.9). It also adds si_trapno field for alpha.
* Add #include <stdint.h> for uint[32|64]_t usage (except installed headers).Ryan S. Arnold2013-05-1610-0/+10
|
* Update s390/bits/siginfo.hEdjunior Machado2013-05-151-3/+7
| | | | | | | | | | 2013-05-15 Edjunior Machado <emachado@linux.vnet.ibm.com> * sysdeps/unix/sysv/linux/s390/bits/siginfo.h (siginfo_t): Remove si_trapno and add si_addr_lsb to _sifields.sigfault. (si_trapno): Remove macro. (si_addr_lsb): Define new macro. (BUS_MCEERR_AR, BUS_MCEERR_AO): Define new values.
* Add getgid.c for SHChristian Grönke2013-05-101-0/+1
| | | | | [BZ #12387] * sysdeps/unix/sysv/linux/sh/getgid.c: New file.
* Fix integer overflow in sysdeps/unix/sysv/linux/bits/sched.hAndreas Jaeger2013-05-101-3/+3
| | | | | | [BZ #15448] * sysdeps/unix/sysv/linux/bits/sched.h (__CPU_SET_S) (__CPU_CLR_S, __CPU_ISSET_S): Avoid integer overflow.
* Fix glob64 broken by cleanup.Roland McGrath2013-05-061-0/+2
|
* Move dummy glob64.c alongside glob.c that defines glob64.Roland McGrath2013-05-061-1/+0
|
* Split _dl_writev out from _dl_debug_vdprintf.Roland McGrath2013-05-061-0/+38
|
* Consolidate definitions of _FORTIFY_SOURCE wrappers for open{,64}{,at}.Roland McGrath2013-05-036-85/+4
|
* PowerPC: Add time vDSO supportAdhemerval Zanella2013-05-034-3/+70
| | | | | | | | PowerPC kernel now provides a vDSO implementation for time syscall (commit fcb41a2030abe0eb716ef0798035ef9562097f42). This patch changes time syscall wrapper to use the vDSO when available. It also changes the default non vDSO time on PowerPC to use sysdeps/posix/time.c (since gettimeofday is a vDSO call).
* Sync with Linux 3.9Andreas Jaeger2013-05-031-1/+3
| | | | | | | | * sysdeps/gnu/netinet/tcp.h (TCP_TIMESTAMP): New value, from Linux 3.9. * sysdeps/unix/sysv/linux/bits/socket.h (PF_VSOCK, AF_VSOCK): Add. (PF_MAX): Adjust for VSOCK change.
* S/390: Change struct statfs[64] member types to unsigned valuesHeiko Carstens2013-04-231-12/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Kay Sievers reported that coreutils' stat tool has a problem with s390's statfs[64] definition: > The definition of struct statfs::f_type needs a fix. s390 is the only > architecture in the kernel that uses an int and expects magic > constants lager than INT_MAX to fit into. > > A fix is needed to make Fedora boot on s390, it currently fails to do > so. Userspace does not want to add code to paper-over this issue. [...] > Even coreutils cannot handle it: > #define RAMFS_MAGIC 0x858458f6 > # stat -f -c%t / > ffffffff858458f6 > > #define BTRFS_SUPER_MAGIC 0x9123683E > # stat -f -c%t /mnt > ffffffff9123683e The bug is caused by an implicit sign extension within the stat tool: out_uint_x (pformat, prefix_len, statfsbuf->f_type); where the format finally will be "%lx". A similar problem can be found in the 'tail' tool. s390 is the only architecture which has an int type f_type member in struct statfs[64]. Other architectures have either unsigned ints or long values, so that the problem doesn't occur there. Therefore change the type of the f_type member to unsigned int, so that we get zero extension instead sign extension when assignment to a long value happens. Reported-by: Kay Sievers <kay@vrfy.org> Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
* Remove __wur from setfsuid and setfsgid.Adam Conrad2013-04-181-2/+2
|
* Preserve errno across _PC_CHOWN_RESTRICTED call on XFSSiddhesh Poyarekar2013-04-032-0/+13
| | | | | | | | | | | | | | Fix BZ #15305. On kernel versions earlier than 2.6.29, the Linux kernel exported a sysctl called restrict_chown for xfs, which could be used to allow chown to users other than the owner. 2.6.29 removed this support, causing the open_not_cancel_2 to fail and thus modify errno. The fix is to save and restore errno so that the caller sees it as unmodified. Additionally, since the code to check the sysctl is not useful on newer kernels, we add an ifdef so that in future the code block gets rmeoved completely.
* New <math.h> macro named issignaling to check for a signaling NaN (sNaN).Thomas Schwinge2013-04-0210-0/+49
| | | | It is based on draft TS 18661 and currently enabled as a GNU extension.
* Consolidate Linux and POSIX libc_fatal code.Roland McGrath2013-03-191-179/+37
|
* Move _dl_non_dynamic_init, _dl_aux_init declarations.Roland McGrath2013-03-151-6/+0
|
* PowerPC: gettimeofday optimization by using IFUNCAdhemerval Zanella2013-03-152-12/+46
|
* Fix formatting in last changeSiddhesh Poyarekar2013-03-141-1/+1
|
* Fix __times() handling of EFAULT when buf is NULLPetr Baudis2013-03-141-4/+6
|
* Remove extra pthread_atfork compat symbolsAndreas Schwab2013-03-111-1/+0
|
* PowerPC: unify math_ldbl.h implementationsAdhemerval Zanella2013-03-081-4/+0
| | | | | This patch removes redudant definition from PowerPC specific math_ldbl, using the definitions from ieee754 math_ldbl.h.
* Install <bits/mman-linux.h>Andreas Jaeger2013-03-071-1/+2
| | | | | * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add bits/mman-linux.h.
* Remove PIPE_BUF Linux-specific codeSiddhesh Poyarekar2013-03-072-24/+0
| | | | | | | | Fixes BZ #12723 The variable pipe buffer size does nothing to the value of PIPE_BUF, since the number of bytes that are atomically written is still PIPE_BUF on Linux.
* Use <bits/mman-linux.h> for MIPSAndreas Jaeger2013-03-061-1/+5
| | | | | | | | | * sysdeps/unix/sysv/linux/bits/mman-linux.h (MAP_ANONYMOUS): Allow definition via __MAP_ANONYMOUS. * sysdeps/unix/sysv/linux/mips/bits/mman.h: Remove all defines provided by bits/mman-linux.h and include <bits/mman-linux.h>. (__MAP_ANONYMOUS): Define.
* Remove MAP_GROWSUP on s390Andreas Jaeger2013-03-061-2/+0
| | | | | * sysdeps/unix/sysv/linux/s390/bits/mman.h (MAP_GROWSUP): Remove, it's not part of Linux headers.
* Sync with Linux 3.8Andreas Jaeger2013-03-0613-4/+35
|
* Remove powerpc64 bounded-pointers code.Joseph Myers2013-03-062-14/+6
|
* Define MCL_CURRENT, MCL_FUTURE in bits/mman-linux.hAndreas Jaeger2013-03-056-29/+23
| | | | | | | | | | | | | | | | | | | | * sysdeps/unix/sysv/linux/s390/bits/mman.h: Include <bits/mman-linux.h>. (MCL_CURRENT, MCL_FUTURE): Do not define here, the generic value is fine. * sysdeps/unix/sysv/linux/sh/bits/mman.h: Move include of <bits/mman-linux.h> to end of file. (MCL_CURRENT, MCL_FUTURE): Do not define here, the generic value is fine. * sysdeps/unix/sysv/linux/x86/bits/mman.h: Move include of <bits/mman-linux.h> to end of file. (MCL_CURRENT, MCL_FUTURE): Do not define here, the generic value is fine. * sysdeps/unix/sysv/linux/sparc/bits/mman.h: Move include of <bits/mman-linux.h> to end of file. * sysdeps/unix/sysv/linux/bits/mman-linux.h [!MCL_CURRENT] (MCL_CURRENT, MCL_FUTURE): Define here.
* S/390: Fix rt_sigprocmask syscall invocation in get/set/swapcontext.Andreas Krebbel2013-03-057-86/+100
|
* Create <bits/mman-linux.h>Andreas Jaeger2013-03-046-338/+104
| | | | | | | | | | | | | * sysdeps/unix/sysv/linux/bits/mman-linux.h: New file, with Linux common definitions. * sysdeps/unix/sysv/linux/sh/bits/mman.h: Remove all defines provided by bits/mman-linux.h and include <bits/mman-linux.h>. * sysdeps/unix/sysv/linux/x86/bits/mman.h: Likewise. * sysdeps/unix/sysv/linux/s390/bits/mman.h: Likewise. * sysdeps/unix/sysv/linux/powerpc/bits/mman.h: Likewise. * sysdeps/unix/sysv/linux/sh/bits/mman.h: Likewise. * sysdeps/unix/sysv/linux/sparc/bits/mman.h: Likewise.
* Fix NEED_DL_SYSINFO_DSO conditionals.Roland McGrath2013-03-011-1/+1
|
* Remove powerpc32 bounded-pointers code.Joseph Myers2013-02-282-14/+6
|
* Remove remaining bounded-pointers support from i386 .S files.Joseph Myers2013-02-216-30/+20
|
* C++11 thread_local destructors supportSiddhesh Poyarekar2013-02-1810-0/+30
| | | | | | | | | | | This feature is specifically for the C++ compiler to offload calling thread_local object destructors on thread program exit, to glibc. This is to overcome the possible complication of destructors of thread_local objects getting called after the DSO in which they're defined is unloaded by the dynamic linker. The DSO is marked as 'unloadable' if it has a constructed thread_local object and marked as 'unloadable' again when all the constructed thread_local objects defined in it are destroyed.