[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