* 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
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  <psmith@gnu.org>
+
+	* 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  <juan.guerrero@gmx.de>
 
 	* 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 @@
       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, '{');