[PATCH 0/8] posix: glob fixes and refactor
Adhemerval Zanella
adhemerval.zanella@linaro.org
Tue Nov 21 13:55:00 GMT 2017
This patchset main target is to remove alloca usage on glob by
using a specialized dynarray for C strings (struct char_array).
It does not change any glob semantics, only internal glob buffer
management. It also does not solve the potential stack overflow
due recursive allocation from wildcard in patterns [1] (although
an option would be go to pure dynamic char_array for this case).
[1] http://lists.gnu.org/archive/html/bug-gnulib/2017-10/msg00056.html
Adhemerval Zanella (8):
malloc: Add specialized dynarray for C strings
posix: Use char_array for internal glob dirname
posix: Remove alloca usage for GLOB_BRACE on glob
posix: Remove alloca usage on glob dirname
posix: Use dynarray for globname in glob
posix: Remove alloca usage on glob user_name
posix: Use char_array for home_dir in glob
posix: Remove all alloca usage in glob
ChangeLog | 30 ++
malloc/Makefile | 4 +-
malloc/Versions | 7 +
malloc/char_array-impl.c | 57 ++++
malloc/char_array-skeleton.c | 279 +++++++++++++++++
malloc/char_array.h | 53 ++++
malloc/dynarray.h | 9 +
malloc/dynarray_overflow_failure.c | 31 ++
malloc/malloc-internal.h | 14 +
malloc/tst-char_array.c | 112 +++++++
posix/glob.c | 621 +++++++++++++++----------------------
11 files changed, 837 insertions(+), 380 deletions(-)
create mode 100644 malloc/char_array-impl.c
create mode 100644 malloc/char_array-skeleton.c
create mode 100644 malloc/char_array.h
create mode 100644 malloc/dynarray_overflow_failure.c
create mode 100644 malloc/tst-char_array.c
--
2.7.4
More information about the Libc-alpha
mailing list