about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/i386/glob64.c
Commit message (Collapse)AuthorAgeFilesLines
* posix: Consolidate Linux glob implementationAdhemerval Zanella2017-09-081-42/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch consolidates the glob implementation. The main changes are: * On Linux all implementation now uses the default one at sysdeps/unix/sysv/linux/glob{free}{64}.c with the exception of alpha (which requires specific versioning) and s390-32 (which different than other 32 bits ports it does not add a compat one symbol for 2.1 version). * The default implementation uses XSTAT_IS_XSTAT64 to define whether both glob{free} and glob{free}64 should be different implementations. For archictures that define XSTAT_IS_XSTAT64, glob{free} is an alias to glob{free}64. * Move i386 olddirent.h header to Linux default directory, since it is the only header with this name and it is shared among different architectures (and used on compat glob symbol as well). Checked on x86_64-linux-gnu and on a build using build-many-glibcs.py for all major architectures. * sysdeps/unix/sysv/linux/arm/glob64.c: Remove file. * sysdeps/unix/sysv/linux/i386/glob64.c: Likewise. * sysdeps/unix/sysv/linux/m68k/glob64.c: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n64/glob64.c: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n64/globfree64.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/glob64.c: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/glob64.c: Likewise. * sysdeps/unix/sysv/linux/wordsize-64/glob64.c: Likewise. * sysdeps/unix/sysv/linux/wordsize-64/globfree64.c: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/glob.c: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/globfree.c: Likewise. * sysdeps/wordsize-64/glob.c: Likewise. * sysdeps/wordsize-64/glob64.c: Likewise. * sysdeps/wordsize-64/globfree64.c: Likewise. * sysdeps/unix/sysv/linux/glob.c: New file. * sysdeps/unix/sysv/linux/glob64.c: Likewise. * sysdeps/unix/sysv/linux/globfree.c: Likewise. * sysdeps/unix/sysv/linux/globfree64.c: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/glob64.c: Likewise. * sysdeps/unix/sysv/linux/oldglob.c [SHLIB_COMPAT]: Also adds !GLOB_NO_OLD_VERSION as an extra condition. * sysdeps/unix/sysv/linux/i386/alphasort64.c: Include olddirent.h using relative path instead of absolute one. * sysdeps/unix/sysv/linux/i386/getdents64.c: Likewise. * sysdeps/unix/sysv/linux/i386/readdir64.c: Likewise. * sysdeps/unix/sysv/linux/i386/readdir64_r.c: Likewise. * sysdeps/unix/sysv/linux/i386/versionsort64.c: Likewise. * sysdeps/unix/sysv/linux/i386/olddirent.h: Move to ... * sysdeps/unix/sysv/linux//olddirent.h: ... here.
* posix: Sync glob with gnulib [BZ #1062]Adhemerval Zanella2017-09-081-38/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch syncs posix/glob.c implementation with gnulib version b5ec983 (glob: simplify symlink detection). The only difference to gnulib code is * DT_UNKNOWN, DT_DIR, and DT_LNK definition in the case there were not already defined. Gnulib code which uses HAVE_STRUCT_DIRENT_D_TYPE will redefine them wrongly because GLIBC does not define HAVE_STRUCT_DIRENT_D_TYPE. Instead the patch check for each definition instead. Also, the patch requires additional globfree and globfree64 files for compatibility version on some architectures. Also the code simplification leads to not macro simplification (not need for NO_GLOB_PATTERN_P anymore). Checked on x86_64-linux-gnu and on a build using build-many-glibcs.py for all major architectures. [BZ #1062] * posix/Makefile (routines): Add globfree, globfree64, and glob_pattern_p. * posix/flexmember.h: New file. * posix/glob_internal.h: Likewise. * posix/glob_pattern_p.c: Likewise. * posix/globfree.c: Likewise. * posix/globfree64.c: Likewise. * sysdeps/gnu/globfree64.c: Likewise. * sysdeps/unix/sysv/linux/alpha/globfree.c: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n64/globfree64.c: Likewise. * sysdeps/unix/sysv/linux/oldglob.c: Likewise. * sysdeps/unix/sysv/linux/wordsize-64/globfree64.c: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/globfree.c: Likewise. * sysdeps/wordsize-64/globfree.c: Likewise. * sysdeps/wordsize-64/globfree64.c: Likewise. * posix/glob.c (HAVE_CONFIG_H): Use !_LIBC instead. [NDEBUG): Remove comments. (GLOB_ONLY_P, _AMIGA, VMS): Remove define. (dirent_type): New type. Use uint_fast8_t not uint8_t, as C99 does not require uint8_t. (DT_UNKNOWN, DT_DIR, DT_LNK): New macros. (struct readdir_result): Use dirent_type. Do not define skip_entry unless it is needed; this saves a byte on platforms lacking d_ino. (readdir_result_type, readdir_result_skip_entry): New functions, replacing ... (readdir_result_might_be_symlink, readdir_result_might_be_dir): these functions, which were removed. This makes the callers easier to read. All callers changed. (D_INO_TO_RESULT): Now empty if there is no d_ino. (size_add_wrapv, glob_use_alloca): New static functions. (glob, glob_in_dir): Check for size_t overflow in several places, and fix some size_t checks that were not quite right. Remove old code using SHELL since Bash no longer uses this. (glob, prefix_array): Separate MS code better. (glob_in_dir): Remove old Amiga and VMS code. (globfree, __glob_pattern_type, __glob_pattern_p): Move to separate files. (glob_in_dir): Do not rely on undefined behavior in accessing struct members beyond their bounds. Use a flexible array member instead (link_stat): Rename from link_exists2_p and return -1/0 instead of 0/1. Caller changed. (glob): Fix memory leaks. * posix/glob64 (globfree64): Move to separate file. * sysdeps/gnu/glob64.c (NO_GLOB_PATTERN_P): Remove define. (globfree64): Remove hidden alias. * sysdeps/unix/sysv/linux/Makefile (sysdeps_routines): Add oldglob. * sysdeps/unix/sysv/linux/alpha/glob.c (__new_globfree): Move to separate file. * sysdeps/unix/sysv/linux/i386/glob64.c (NO_GLOB_PATTERN_P): Remove define. Move compat code to separate file. * sysdeps/wordsize-64/glob.c (globfree): Move definitions to separate file.
* i386: Hide __old_glob64 [BZ #18822]H.J. Lu2017-08-201-0/+3
| | | | | | | | | Hide internal __old_glob64 function to allow direct access within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * sysdeps/unix/sysv/linux/i386/glob64.c (__old_glob64): Add libc_hidden_proto and libc_hidden_def.
* Update copyright dates with scripts/update-copyrights.Joseph Myers2017-01-011-1/+1
|
* CVE-2016-1234: glob: Do not copy d_name field of struct dirent [BZ #19779]Florian Weimer2016-05-041-0/+22
| | | | | | Instead, we store the data we need from the return value of readdir in an object of the new type struct readdir_result. This type is independent of the layout of struct dirent.
* Remove pre-ISO C supportUlrich Drepper2012-01-071-2/+2
| | | | No more __const.
* 2005-12-13 Ulrich Drepper <drepper@redhat.com>Ulrich Drepper2005-12-141-2/+2
|
* (CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4.Ulrich Drepper2004-12-221-2/+2
|
* 2.5-18.1Jakub Jelinek2007-07-121-2/+2
|
* (glob64): Use libc_hidden_ver instead of libc_hidden_def.Ulrich Drepper2004-07-041-1/+1
|
* Update.Ulrich Drepper2004-07-011-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2004-07-01 Martin Schwidefsky <schwidefsky@de.ibm.com> * sysdeps/s390/fpu/bits/mathinline.h [__LIBC_INTERNAL_MATH_INLINES] (__ieee754_sqrt): Define as __MATH_INLINE using sqdbr instruction. (__ieee754_sqrtf): Define as __MATH_INLINE using sqebr instruction. * sysdeps/s390/fpu/e_sqrt.c: New file. * sysdeps/s390/fpu/e_sqrtf.c: New file. * sysdeps/s390/Implies: New file. * sysdeps/s390/s390-32/Implies: Remove ieee754, move ieee754/dbl-64 and ieee754/flt-32 to s390/Implies. * sysdeps/s390/s390-64/Implies: Likewise. 2004-06-30 Jakub Jelinek <jakub@redhat.com> * sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S: Include tls.h. * sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/clone.S (thread_start): DO_CALL (exit, 1) instead of branching to _exit. * sysdeps/unix/sysv/linux/s390/s390-64/clone.S (thread_start): Likewise. * sysdeps/s390/fpu/bits/mathinline.h: New file. * include/glob.h (glob64): Add libc_hidden_proto. * sysdeps/generic/glob64.c (glob64): Add libc_hidden_def. * sysdeps/gnu/glob64.c (glob64): Likewise. * sysdeps/unix/sysv/linux/i386/glob64.c (glob64): Likewise.
* Update.Ulrich Drepper2004-03-101-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2004-03-10 Ulrich Drepper <drepper@redhat.com> * include/libc-symbols.h: Define attribute_compat_text_section and attribute_compat_data_section. * io/ftw.c: Mark compat code with attribute_compat_text_section. * libio/iofopncook.c: Likewise. * libio/oldfileops.c: Likewise. * libio/oldiofclose.c: Likewise. * libio/oldiofdopen.c: Likewise. * libio/oldiofgetpos.c: Likewise. * libio/oldiofgetpos64.c: Likewise. * libio/oldiofopen.c: Likewise. * libio/oldiofsetpos.c: Likewise. * libio/oldiofsetpos64.c: Likewise. * libio/oldiopopen.c: Likewise. * libio/oldpclose.c: Likewise. * libio/oldtmpfile.c: Likewise. * nptl/forward.c: Likewise. * nss/getXXbyYY_r.c: Likewise. * nss/getXXent_r.c: Likewise. * posix/tst-vfork1.c: Likewise. * stdlib/canonicalize.c: Likewise. * stdlib/old_atexit.c: Likewise. * sysdeps/generic/glob.c: Likewise. * sysdeps/posix/posix_fallocate64.c: Likewise. * sysdeps/unix/sysv/linux/i386/alphasort64.c: Likewise. * sysdeps/unix/sysv/linux/i386/chown.c: Likewise. * sysdeps/unix/sysv/linux/i386/glob64.c: Likewise. * sysdeps/unix/sysv/linux/i386/msgctl.c: Likewise. * sysdeps/unix/sysv/linux/i386/oldgetrlimit64.c: Likewise. * sysdeps/unix/sysv/linux/i386/posix_fadvise64.S: Likewise. * sysdeps/unix/sysv/linux/i386/readdir64.c: Likewise. * sysdeps/unix/sysv/linux/i386/readdir64_r.c: Likewise. * sysdeps/unix/sysv/linux/i386/scandir64.c: Likewise. * sysdeps/unix/sysv/linux/i386/semctl.c: Likewise. * sysdeps/unix/sysv/linux/i386/shmctl.c: Likewise. * sysdeps/unix/sysv/linux/i386/versionsort64.c: Likewise. * sysdeps/unix/sysv/linux/i386/syscalls.list: vm86@@GLIBC_2.3.4 should be the default symbol. Having none misses the point.
* Update.Ulrich Drepper2002-08-051-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-08-04 Jakub Jelinek <jakub@redhat.com> * sysdeps/generic/glob.c (glob, globfree): Only use libc_hidden_def if glob resp. globfree are not macros. * sysdeps/gnu/glob64.c (globfree64): Add libc_hidden_def. * sysdeps/unix/sysv/linux/alpha/glob.c (glob, globfree, globfree64): Add libc_hidden_ver. * sysdeps/unix/sysv/linux/i386/glob64.c (globfree64): Add libc_hidden_def. * sysdeps/wordsize-64/glob.c (globfree64): Use libc_hidden_ver instead of libc_hidden_weak. * sysdeps/wordsize-64/strtol.c (__strtoll_internal): Use libc_hidden_ver instead of libc_hidden_def. * sysdeps/wordsize-64/wcstol.c (__wcstoll_internal): Use libc_hidden_ver instead of libc_hidden_def. (wcstoll, wcstoq): Remove libc_hidden_weak. * sysdeps/wordsize-64/strtol_l.c (____strtoll_l_internal): Add libc_hidden_ver. * sysdeps/wordsize-64/strtoul.c (__strtoull_internal): Add libc_hidden_ver. * sysdeps/wordsize-64/strtoul_l.c (____strtoull_l_internal): Add libc_hidden_ver. * sysdeps/wordsize-64/wcstoul.c (__wcstoull_internal): Add libc_hidden_ver.
* Update.Ulrich Drepper2001-02-131-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * io/ftw.c: Always use readdir64. * io/ftw64.c: Likewise. * sysdeps/unix/sysv/linux/ttyname.c: Likewise. * sysdeps/unix/sysv/linux/ttyname_r.c: Likewise. * sysdeps/generic/glob.c: Likewise. Convert results if gl_readdir callback to dirent. Still allow compiling outside glibc. * sysdeps/gnu/glob64.c: Define COMPILE_GLOB64. * sysdeps/unix/sysv/linux/i386/glob64.c: Likewise. * malloc/mtrace.c: Use fopen64. * posix/spawni.c: Use __open64. * sysdeps/unix/opendir.c: Likewise. * sysdeps/unix/sysv/linux/gethostid.c: Likewise. * sysdeps/generic/ftruncate64.c: Define __ftruncate64 and make old name a weak alias. * sysdeps/unix/sysv/aix/ftruncate64.c: Likewise. * sysdeps/unix/sysv/linux/ftruncate64.c: Likewise. * sysdeps/unix/sysv/linux/mips/ftruncate64.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/ftruncate64.c: Likewise. * resolv/res_data.c: Add cast to avoid warning. * include/unistd.h: Declare __ftruncate64. * sysdeps/generic/utmp_file.c: Use LFS functions and type.
* Update.Ulrich Drepper2000-08-191-0/+48
* malloc/mtrace.pl (usage): Inform about --help. 2000-08-19 Wolfram Gloger <wg@malloc.de> * malloc/malloc.c (new_heap): try harder to get an aligned chunk of size HEAP_MAX_SIZE. 2000-08-19 Andreas Jaeger <aj@suse.de> * shlib-versions: Remove libnss_db, libdb and libdb1. 2000-08-19 Jakub Jelinek <jakub@redhat.com> * sysdeps/unix/sysv/linux/alpha/readdir.c: Move... * sysdeps/unix/sysv/linux/ia64/readdir.c: ...here and * sysdeps/unix/sysv/linux/sparc/sparc64/readdir.c: ...here. * sysdeps/unix/sysv/linux/alpha/readdir_r.c: Move... * sysdeps/unix/sysv/linux/ia64/readdir_r.c: ...here and * sysdeps/unix/sysv/linux/sparc/sparc64/readdir_r.c: ...here. * sysdeps/unix/sysv/linux/alpha/readdir64.c: Remove. * sysdeps/unix/sysv/linux/alpha/readdir64_r.c: Remove. * sysdeps/unix/sysv/linux/alpha/getdents64.c: Remove. * sysdeps/unix/sysv/linux/alpha/getdents.c: Only use for non-LFS getdents. * sysdeps/unix/sysv/linux/readdir64.c: Remove versioning. * sysdeps/unix/sysv/linux/readdir64_r.c: Likewise. 2000-08-18 Jakub Jelinek <jakub@redhat.com> * include/glob.h (__glob64): Add prototype. * sysdeps/generic/glob.c: If GLOB_ONLY_P is defined, only define glob and glob_in_dir. * sysdeps/unix/sysv/linux/i386/Versions: Add glob64@@GLIBC_2.2. * sysdeps/unix/sysv/linux/arm/Versions: Likewise. * sysdeps/unix/sysv/linux/powerpc/Versions: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/Versions: Likewise. * sysdeps/unix/sysv/linux/i386/glob64.c: New file. * sysdeps/unix/sysv/linux/arm/glob64.c: New file. * sysdeps/unix/sysv/linux/powerpc/glob64.c: New file. * sysdeps/unix/sysv/linux/sparc/sparc32/glob64.c: New file. 2000-08-18 Jakub Jelinek <jakub@redhat.com> * malloc/Makefile (memusage): libmemusage.so is installed in slibdir. 2000-08-17 Andreas Jaeger <aj@suse.de> * math/test-fenv.c (fe_single_test): New function. (fe_env_tests): Use fe_single_test. (feenable_test): New tests for feenable/fedisable and fegetexcpetions. (feexcp_mask_test): New function. (feexcp_nomask_test): New function. 2000-08-19 Richard Henderson <rth@cygnus.com> * sysdeps/alpha/fpu/fenv_libc.h: New file. * sysdeps/alpha/fpu/fclrexcpt.c: Use it. * sysdeps/alpha/fpu/fegetenv.c: Likewise. * sysdeps/alpha/fpu/fesetround.c: Likewise. * sysdeps/alpha/fpu/fegetround.c: Likewise. * sysdeps/alpha/fpu/fgetexcptflg.c: Likewise. * sysdeps/alpha/fpu/fraiseexcpt.c: Likewise. * sysdeps/alpha/fpu/ftestexcept.c: Likewise. * sysdeps/alpha/fpu/fedisblxcpt.c: Likewise. Use the smaller mask. * sysdeps/alpha/fpu/feenablxcpt.c: Likewise. * sysdeps/alpha/fpu/fegetexcept.c: Likewise. * sysdeps/alpha/fpu/feholdexcpt.c: Retain the SWCR_MAP bits. * sysdeps/alpha/fpu/fesetenv.c: Likewise. * sysdeps/alpha/fpu/feupdateenv.c: Likewise. * sysdeps/alpha/fpu/fsetexcptflg.c: Likewise. * sysdeps/alpha/fpu/bits/fenv.h (FE_DENORMAL): New. (FE_MAP_DMZ, FE_MAP_UMZ, FE_NONIEEE_ENV): New. 2000-08-19 Andreas Jaeger <aj@suse.de>