From 5d653b535a0e0e607c8be2016bcaadd6f326a698 Mon Sep 17 00:00:00 2001 From: Paul Smith Date: Sun, 20 Oct 2013 13:18:03 -0400 Subject: * glob.c (glob) [SV 18123]: Cherry-pick glibc fix Apply commit a471e96a5352a5f0bde6d32dd36d33524811a2b1 from git://sourceware.org/git/glibc.git to fix https://sourceware.org/bugzilla/show_bug.cgi?id=10278 --- glob/ChangeLog | 6 ++++++ glob/glob.c | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/glob/ChangeLog b/glob/ChangeLog index 8f0739c..c543c85 100644 --- a/glob/ChangeLog +++ b/glob/ChangeLog @@ -1,3 +1,9 @@ +2013-10-20 Paul Smith + + * glob.c (glob): Cherry-pick a471e96a5352a5f0bde6d32dd36d33524811a2b1 + from git://sourceware.org/git/glibc.git to fix SV 18123, + https://sourceware.org/bugzilla/show_bug.cgi?id=10278 + 2008-09-28 Juan Manuel Guerrero * glob.c (my_realloc) [__DJGPP__]: Don't define, and don't diff --git a/glob/glob.c b/glob/glob.c index 1a19205..f3911bc 100644 --- a/glob/glob.c +++ b/glob/glob.c @@ -377,6 +377,11 @@ glob (pattern, flags, errfunc, pglob) return -1; } + /* POSIX requires all slashes to be matched. This means that with + a trailing slash we must match only directories. */ + if (pattern[0] && pattern[strlen (pattern) - 1] == '/') + flags |= GLOB_ONLYDIR; + if (flags & GLOB_BRACE) { const char *begin = strchr (pattern, '{'); -- cgit v1.2.3